jQuery/js-如何根据单击提交按钮来选择父表单?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (50)

验证脚本(我在其他地方使用过,只有一个表单)如下所示:

$(document).ready(function(){
    $("#submit").click(function(){
        $(".error").hide();
        var hasError = false;

        var nameVal = $("#name").val();
        if(nameVal == '') {
            $("#name").after('Please enter your name.');
            hasError = true;
        }


        if(hasError == false) {blah blah do all the processing stuff}

那么,是否需要将$(“#name”).val()之类的东西替换为$(This).parents(‘form’).name.val()?

提问于
用户回答回答于

可以选择如下形式:

$("#submit").click(function(){
    var form = $(this).parents('form:first');
    ...
});

但是,通常最好将该事件附加到表单本身的Submit事件,因为即使在提交时,它也会通过从其中一个字段按Enter键触发:

$('form#myform1').submit(function(e){
     e.preventDefault(); //Prevent the normal submission action
     var form = this;
     // ... Handle form submission
});

若要选择窗体内的字段,例如:

$("input[name='somename']",form).val();
用户回答回答于

想添加一个注释,因为现在有一个比使用:

var form = $(this).parents('form:first');

使用最近的代码可以更改如下:

var form = $(this).closest('form');

扫码关注云+社区