4

我正在使用 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>

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

4

2 回答 2

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>”点击事件丢失了。这就是它没有提交的原因。(有道理吗?如果这个解释写得不好,请告诉我。)

于 2012-08-31T16:39:53.037 回答
0

validate 阻止帖子发生以进行验证。这是设计使然。

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

于 2012-08-31T16:34:15.533 回答