1

登録ウィザードの最後に、 blur()を使用して、ユーザーがフォームに書き込んだ内容を概要ページにコピーしています。そして、これはうまく機能しています。

しかし、いくつかのフィールド値を事前設定し、それらが正しい場合、ユーザーはおそらくその特定のフィールドを操作しないため、何もコピーされません。続行をクリックするだけです。

すべてのテキストフィールド、テキストエリアをトリガーして、それらの値もコピーする方法はありますか?

これは私が使用している機能です:

/**
 *  Author: Thomas Kile
 *  Desc:   Copy text from a form element into a given tag.
 **
 *  @param string $type type of form element
 *  @param string $from Id of form element to copy text/value from.
 *  @param string $to Id of element to copy text/value into.
 */
    function copyFormData(type,from,to)
    {   
        switch (type)
        {
            case 'text':  var copied_text = $(from).val();  break; //  get input text value
            case 'select': var copied_text = $(from+' option:selected').text();  break;
        }
        $(to).text(copied_text);   //  put inside this tag
    }

そして、これが私がそれを使用している方法です:

$(firstName).blur(function(){   copyFormData('text',firstName,'strong#firstName');  });
$(lastName).blur(function(){    copyFormData('text',lastName,'strong#lastName');    });

trigger()イベントはどこに置くべきですか? リストが getJSON でフェッチされたら、select>first オプションでtrigger()を使用して、チェーンされた選択で次のリストを自動的に入力しました。でもそれはちょっと違った…

4

7 に答える 7

10

トリックを使用できます:)

$('input').each(function(){
  $(this).trigger('blur');
  //each input event one by one... will be blured
})
于 2012-06-08T09:59:11.717 に答える
3
$('input[type=text], textarea').blur();

または (すべてが jQuery にバインドされている場合は、より高速になる可能性があります):

$('input[type=text], textarea').triggerHandler('blur');
于 2012-06-08T10:00:25.630 に答える
0

以下のコードを使用できます。

 $('input:text').each(function(){
        $(this).trigger('blur');
    })
于 2014-07-17T09:58:58.540 に答える
0

.trigger() を試しましたか?

http://api.jquery.com/trigger/

于 2012-06-08T09:59:35.730 に答える
0

コピー入力を要約コードに取り、それを関数に入れてみませんか。ぼかしをそのままにして(インラインコードではなくこの関数を呼び出すことを除いて)、 $(document).ready() ですべてのテキストボックスを選択し、何かが含まれている場合はそれらをコピーします。イベントをごまかそうとするよりも簡単です。

于 2012-06-08T09:59:51.217 に答える
0

起動することで、プログラムでそれらをトリガーすることができます

$("selector").trigger("blur"); 

api.jquery.com/trigger はあなたの友達です :-)

于 2012-06-08T10:00:50.377 に答える