10/10/2018, 11:16

Làm sao để cho submit button được thực thi tự động ?

Khi tạo form thông thường ta hay tạo thêm một submit button để khi click vào submit button sẽ gởi toàn bộ dữ liệu trong form đi dựa vào method và action mà ta khai báo khi tạo form. Vậy có cách nào để quá trình submit này diễn ra tự động (không cần phải click vào submit button) ? Nếu có thì phải viết code ra sao xin các bạn chỉ giúp ?
chonnh viết 13:26 ngày 10/10/2018
Giả sử form bạn cần submit có tên frm, khi đó ta có thể submit form bất kỳ khi nào bằng lệnh : document.frm.submit()
squallodine viết 13:26 ngày 10/10/2018
Tôi đã dùng thử cách bạn nói. Nhưng trình duyệt lại báo lỗi runtime là : object doesn't support this property or method
Vậy phải làm sao bây giờ? Tôi có tham khảo sách thấy cũng có liệt kê method submit, sự kiện onsubmit, ... nhưng vẫn không dùng được.
NumPad0 viết 13:24 ngày 10/10/2018
PHP Code:
<body onload="document.frm1.submit()">
    <
form name="frm1" action="page.html" method="POST">
        <
input type="hidden" name="hid" value="nohid">
    </
form>
</
body
Chẳng có lý do gì mà không chạy cả.
squallodine viết 13:26 ngày 10/10/2018
Nhưng đó là trang web vừa mở thì thực hiện submit form phải không? Nếu vậy thì ngay khi load trang web thì form đã được submit. Nhưng nếu muốn trang web chứa form chờ trong 1 khoảng thời gian nào đó (ví dụ chờ trong 30s) để user nhập thông tin vào form, sau đó (hết 30s) thì form tự động submit thì phải làm sao? Phần thời gian thì tôi làm được nhưng phần tự submit thì bị lỗi runtime đã nói trên.
C++ viết 13:20 ngày 10/10/2018
vậy thì bạn viết một đoạn script vòng lặp

ví dụ

<head>
<script language=JavaScript>
function diendantinhoc()
{
var number = 30 số thời gian
for(var num = 1; num <= number ; num++)
{
if(num = number){ document.frm1.submit() }
}
}
</script>
</head>

<body onload="diendantinhoc()">
<form name="frm1" action="page.html" method="POST">
<input type="hidden" name="hid" value="nohid">
</form>
</body>
cold viết 13:33 ngày 10/10/2018
Bạn thử cái này xem
Code:
<html>
	<body>
		<form name = 'funny'>
			Name  
			<input type = "textfield" name = "name">
			<br>
			Time  
			<input type = "textfield" name = "time" size = "2">
			<input type = "hidden" value = "lonely">
		</form>
	</bdoy>
</html>

<script language = "JavaScript">

	var count = 30;

	function  countDown ()
	{
		document.forms ["funny"].time.value = count;
		if (count == 0)
			autoSubmit ();
		else
			setTimeout (countDown, 1000);
		count--;
	}

	function  autoSubmit ()
	{
		alert ("Time Out!");		
		document.forms ["funny"].submit ();
	}

	//setTimeout (autoSubmit, 15000);
	countDown ();
</script>
squallodine viết 13:26 ngày 10/10/2018
Rất cám ơn tất cả các bạn đã góp ý. Thật sự thì cách dùng câu lệnh sau: document.formname.submit() là cách giải quyết đúng nhất trong trường hợp chúng ta muốn submit một form mà không cần phải click vào submit button. Vấn đề của tôi ở đây là khi dùng câu lệnh trên document.formname.submit() thì có lúc nó chạy (lệnh submit được thực thi) có lúc lại không (báo lỗi runtime: object doesn't support this property or method). Chẳng biết lý do tại sao.
Tôi đã đặt trường hợp IE bị lỗi nhưng cài Opera vẫn bị (báo lỗi error on page và không thực thi lệnh submit). Liệu có phải đã đụng chạm gì với hệ thống không ?
huandtcn viết 13:30 ngày 10/10/2018
Thanks vì bài viết này.hihi
hoanghon2005 viết 13:32 ngày 10/10/2018
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="JavaScript">
function auto_sub()
{
document.form.submit();
}
function auto_sub1()
{
setTimeout("auto_sub()",5000);
}

</script>
</head>

<body onLoad="auto_sub1();">
<form name="form" method="post" action="abc.php">
</form>
</body>
</html>

Bạn làm thử như thế này xem có chạy không nhé mình để nó cứ 5 giây thì submit một lần
Bài liên quan
0