我想在表单元素外部创建一个按钮,用于检查输入是否已填充,如果是,则提交表单,如果没有,则执行其他操作(如提示警报或其他内容)。 / p>
我做了这个小提琴,它不起作用:
HTML:
<form action="javascript:alert('submitted');" method="post">
<input type="text" id="inp_name">
<input type="text" id="inp_address">
<input type="text" id="inp_zipcode">
<input type="text" id="inp_city">
<input type="submit" value="Submit form">
</form>
<a href="#" id="to-top">CLICK ME TO SUBMIT FORM OUTSIDE FORM ELEMENT</a>
使用Javascript:
var bas_name = $("#inp_name").val();
var bas_address = $("#inp_address").val();
var bas_zipcode = $("#inp_zipcode").val();
var bas_city = $("#inp_city").val();
$("#to-top").click(function() {
if(bas_name == "" && bas_address == "" && bas_zipcode == "" && bas_city == "") {
alert("nonoonnono!");
} else {
$("form").submit();
}
});
答案 0 :(得分:1)
这里的问题是变量范围。你可以这样做: -
$("#to-top").click(function () {
var bas_name = $("#inp_name").val();
var bas_address = $("#inp_address").val();
var bas_zipcode = $("#inp_zipcode").val();
var bas_city = $("#inp_city").val();
if (bas_name == "" && bas_address == "" && bas_zipcode == "" && bas_city == "") {
alert("nonoonnono!");
} else {
$("form").submit();
}
});
此问题发生以来,您已将所有变量保留在click事件之外。因此,它将始终在页面加载时存储空值,因此您的代码不起作用。 但是,在单击锚标记时,您需要获取文本框中的当前值,然后执行所有验证。
希望,你明白了我的意思!
答案 1 :(得分:0)
点击后必须获取值
$("#to-top").click(function() {
var bas_name = $("#inp_name").val();
var bas_address = $("#inp_address").val();
var bas_zipcode = $("#inp_zipcode").val();
var bas_city = $("#inp_city").val();
if(bas_name == "" && bas_address == "" && bas_zipcode == "" && bas_city == "") {
alert("nonoonnono!");
} else {
$("form").submit();
}
});
答案 2 :(得分:0)
试试这个
$(document).on("click", "#to-top", function() {
//Your code
});
答案 3 :(得分:0)
可能要查看表单函数 onsubmit ,您可以在其中调用js函数,并返回true或false。这是一个简单的例子: http://www.w3schools.com/js/js_form_validation.asp
之后,很容易通过jQuery从任何地方调用表单提交。
$("#myForm").submit();
或使用javascript:
document.getElementById("myForm").submit();