jquery验证阻止提交在帖子中传递

时间:2012-08-31 16:31:39

标签: jquery jquery-validate

我正在使用jquery validate来检查我的数据库中的现有电话号码。我正在使用jquery validate remote属性。

remote: {
    url: "ajax-checkmobile.php",
    type: "post",
    data: {
      cust_id: function() {
        return $("#cust_id").val();
      }
    }
  }

但是这会阻止通过POST在表单提交上传递提交值。

<input name="Submitcustdata" type="submit" class="chromeButton" id="Submitcustdata" value="Edit Customer" /></td>

删除上面的代码后,提交值正确传递。知道什么可能阻止传递价值

2 个答案:

答案 0 :(得分:1)

我开发了以下代码,我在使用AJAX提交表单的上下文中使用了该代码。这不完全是您的情况,但相同的代码将使您的<input type="submit">值提交:

function submit_click() {
    var $input = $(this);
    var name = $input.attr('name');
    if (typeof name == 'undefined') return;
    var value  = $input.attr('value');
    var $form  = $input.closest('form');
    var $hidden = $('<input type="hidden" />').attr('name', name).attr('value', value);
    $form.find('input[type=hidden][name="' + name + '"]').remove();
    $form.append($hidden);
};

$(document).on('click', 'form.ajax input[type=submit]', submit_click);

我使用表单元素中的class="ajax"来激活此代码。您可以根据自己的需要进行更改。

它做什么?它创建一个隐藏的表单输入,其名称和值与所单击的提交输入相同。因此,当帖子稍后以编程方式发生时,该值将被正确提交。

啊,你问what could be preventing value from being passed ...验证插件捕获表单提交,并执行其中的内容。验证后,它会触发表单提交。发生这种情况时, <input>元素点击会再次触发表单提交。它是插件的JavaScript代码。因此,“<input>”点击事件将丢失。这就是为什么它没有提交。 (有道理?如果这个解释写得不好,请告诉我。)

答案 1 :(得分:0)

验证可以阻止帖子发生以进行验证。这是设计的。

所以,如果它没有提交,那么它认为该字段无效,我猜。