4

jquery validateを使用して、データベース内の既存の電話番号を確認しています。私はこれにjqueryvalidateリモート属性を使用しています。

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

in the form 要素を使用して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 に答える