Muh*_*riq 187 html javascript forms
停止表单提交的一种方法是从JavaScript函数返回false.
单击提交按钮时,将调用验证功能.我有一个表格验证案例.如果满足该条件,我调用一个名为returnToPreviousPage()的函数;
function returnToPreviousPage() {
window.history.back();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用JavaScript和Dojo Toolkit.
而是回到上一页,它提交表单.如何中止此提交并返回上一页?
Hem*_*lia 261
您可以使用函数的返回值来阻止表单提交
<form name="myForm" onsubmit="return validateMyForm();">
Run Code Online (Sandbox Code Playgroud)
和功能一样
<script type="text/javascript">
function validateMyForm()
{
if(check if your conditions are not satisfying)
{
alert("validation failed false");
returnToPreviousPage();
return false;
}
alert("validations passed");
return true;
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果Chrome 27.0.1453.116 m(如果上述代码不起作用),请将事件处理程序的参数的returnValue字段设置为false以使其生效.
感谢Sam分享信息.
编辑:
感谢Vikram的解决方法,如果validateMyForm()返回false:
<form onsubmit="event.preventDefault(); validateMyForm();">
Run Code Online (Sandbox Code Playgroud)
其中validateMyForm()是一个函数,如果验证失败则返回false.关键是使用名称事件.我们不能用于egepreventDefault()
Gre*_*ida 110
使用防止默认
Dojo Toolkit
dojo.connect(form, "onsubmit", function(evt) {
evt.preventDefault();
window.history.back();
});
Run Code Online (Sandbox Code Playgroud)
jQuery的
$('#form').submit(function (evt) {
evt.preventDefault();
window.history.back();
});
Run Code Online (Sandbox Code Playgroud)
香草JavaScript
if (element.addEventListener) {
element.addEventListener("submit", function(evt) {
evt.preventDefault();
window.history.back();
}, true);
}
else {
element.attachEvent('onsubmit', function(evt){
evt.preventDefault();
window.history.back();
});
}
Run Code Online (Sandbox Code Playgroud)
Vik*_*udi 45
以下作品截至目前(在Chrome和Firefox中测试):
<form onsubmit="event.preventDefault(); validateMyForm();">
Run Code Online (Sandbox Code Playgroud)
其中validateMyForm()是一个false在验证失败时返回的函数.关键是使用名称event.我们不能用于例如e.preventDefault().
dku*_*mar 13
只需使用简单button而不是提交按钮.并调用JavaScript函数来处理表单提交:
<input type="button" name="submit" value="submit" onclick="submit_form();"/>
Run Code Online (Sandbox Code Playgroud)
script标签内的功能:
function submit_form() {
if (conditions) {
document.forms['myform'].submit();
}
else {
returnToPreviousPage();
}
}
Run Code Online (Sandbox Code Playgroud)
你也可以试试 window.history.forward(-1);
Pha*_*inh 11
基于@Vikram Pudi 的回答,我们也可以使用纯 Javascript 来做到这一点
<form onsubmit="submitForm(event)">
<input type="text">
<input type="submit">
</form>
<script type="text/javascript">
function submitForm(event){
event.preventDefault();
}
</script>
Run Code Online (Sandbox Code Playgroud)
做一件简单的事情有很多困难的方法:
<form name="foo" onsubmit="return false">
Run Code Online (Sandbox Code Playgroud)
我建议不要使用onsubmit而是在脚本中附加一个事件。
var submit = document.getElementById("submitButtonId");
if (submit.addEventListener) {
submit.addEventListener("click", returnToPreviousPage);
} else {
submit.attachEvent("onclick", returnToPreviousPage);
}
Run Code Online (Sandbox Code Playgroud)
然后使用preventDefault()(或returnValue = false对于较旧的浏览器)。
function returnToPreviousPage (e) {
e = e || window.event;
// validation code
// if invalid
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您所有的答案都可以使用。
最终,这对我有用:(如果您不选择至少一个复选框,它会警告并停留在同一页面上)
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form name="helloForm" action="HelloWorld" method="GET" onsubmit="valthisform();">
<br>
<br><b> MY LIKES </b>
<br>
First Name: <input type="text" name="first_name" required>
<br />
Last Name: <input type="text" name="last_name" required />
<br>
<input type="radio" name="modifyValues" value="uppercase" required="required">Convert to uppercase <br>
<input type="radio" name="modifyValues" value="lowercase" required="required">Convert to lowercase <br>
<input type="radio" name="modifyValues" value="asis" required="required" checked="checked">Do not convert <br>
<br>
<input type="checkbox" name="c1" value="maths" /> Maths
<input type="checkbox" name="c1" value="physics" /> Physics
<input type="checkbox" name="c1" value="chemistry" /> Chemistry
<br>
<button onclick="submit">Submit</button>
<!-- input type="submit" value="submit" / -->
<script>
<!---
function valthisform() {
var checkboxs=document.getElementsByName("c1");
var okay=false;
for(var i=0,l=checkboxs.length;i<l;i++) {
if(checkboxs[i].checked) {
okay=true;
break;
}
}
if (!okay) {
alert("Please check a checkbox");
event.preventDefault();
} else {
}
}
-->
</script>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
450028 次 |
| 最近记录: |