【问题标题】:jQuery: call the action's form after calling preventDefault()jQuery:调用 preventDefault() 后调用动作的表单
【发布时间】:2011-08-02 16:51:35
【问题描述】:

以下代码在未填写字段时显示错误消息。

如您所见,我正在调用 preventDefault(),但是...如果字段已填写,如何调用与表单关联的操作??

$('input#save').click(function(e){
  e.preventDefault()

  if($('#field_1').val() == ''){

    $('#error_file').show();

  }
});

【问题讨论】:

标签: javascript jquery


【解决方案1】:
$('input#save').click(function(e){
  e.preventDefault()

  if($('#field_1').val() == ''){

    $('#error_file').show();

  }
  else 
  {
     $('#my_form').submit();
  }
});

【讨论】:

  • 或者,$(this).closest('form').submit();
  • 如果他已经在引用input#save,则无需遍历。如果他选择了input.save,那我肯定会同意使用closest()
  • @Matt,有点贵.. 因为它是form 内的input 元素,那么this.form.submit() 就可以了..
【解决方案2】:

这里的问题是您将e.preventDefault() 放在了哪里。如果验证失败,您只想阻止默认值,因此只需将其移动到 if 条件中。

$('input#save').click(function(e){
    if($('#field_1').val() == ''){
        e.preventDefault();
        $('#error_file').show();
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    相关资源
    最近更新 更多