在表单元素之外创建一个提交按钮 - 不起作用

时间:2014-02-18 13:27:49

标签: javascript jquery html forms

我想在表单元素外部创建一个按钮,用于检查输入是否已填充,如果是,则提交表单,如果没有,则执行其他操作(如提示警报或其他内容)。 / p>

我做了这个小提琴,它不起作用:

http://jsfiddle.net/fe9Nk/

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();
    }
});

4 个答案:

答案 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();
    }
});

FIDDLE DEMO

此问题发生以来,您已将所有变量保留在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();