0

いくつかのフィールド(名前、住所、電話番号など)を含む「個人の追加」フォームがあります。

フォームを送信する前に、他のフィールドの情報を使用して一部のフィールドに事前入力できるようにしたいと思います。たとえば、ユーザーが都市を入力すると、Ajaxクエリは電話番号の市外局番を取得し(コントローラには「市外局番」データベースがあります)、電話番号フィールドに入力します。いくつかのタイピング。

を使用してみましobserveFieldたが、要素のinnerHTMLのみを変更でき、入力フィールドの値は変更できないようです。

どうすればいいのか提案はありますか?

4

2 に答える 2

1

テキスト入力の値を変更する場合は、.val()を使用できます。

したがって、ajaxの成功では、コールバックが発生します。

success: function(data){
  $('#foo').val(data);
}
于 2009-10-02T00:41:28.673 に答える
1

2つの形式があると仮定します。

<form id="formOriginal">
    <input type="text" name="name"/>
    <input type="text" name="address"/>
    <input type="text" name="city"/>
    <input type="text" name="state"/>
</form>

<form id="formCopy">
    <input type="text" name="name"/>
    <input type="text" name="address"/>
    <input type="text" name="city"/>
    <input type="text" name="state"/>
</form>

次のように、アイテムをループして値をコピーできるはずです。

$('#formOriginal input').each(function(e) {
    var name = e.attr('name');
    var $copy = $('#formCopy input[@name=' + name + ']');

    if ($copy) {
        $copy.val($(e).val());
    }
});
于 2009-10-02T04:47:49.743 に答える