3

次のような簡単なjQueryステートメントがあります。

$(document).ready(function() {
    $('#ltc_link').click(function() {
        $('#USERDEFINE1').val( 'LT' );
        $('#PHONENIGHT').val( '(111)111-1111' );
        $('#INTERNET').val( 'NONE' );
        $('#last_purchase').val( 'N/A' );
        $('#last_purchase_date').val( 'N/A' );
    });
});

#ltc_linkリンクがクリックされると、入力フィールドに入力されます。

1 つまたはすべてのフィールドに既にテキスト入力がある場合は、クリック/リンク機能でユーザーが入力した内容を上書きしたくありません。私はJavaScriptで次のようなことができることを知っています:

if (!third.value) { third.value = '(111)111-1111'; }
if (!fourth.value) { fourth.value = 'NONE'; }
if (!fifth.value) { fifth.value = 'N/A'; }
if (!sixth.value) { sixth.value = 'N/A'; }

jQuery構文のヘルプが必要です。前もって感謝します。

4

1 に答える 1

8

次のことをお勧めします。

var defaults = {
    USERDEFINE1 : 'LT',
    PHONENIGHT : '(111)111-1111',
    INTERNET : 'NONE',
    last_purchase : 'N/A',
    last_purchase_date : 'N/A'
};
$('#ltc_link').click(function() {
    // selects the elements
    $('#USERDEFINE1, #PHONENIGHT, #INTERNET, #last_purchase, #last_purchase_date').val(
        function(i, v) {
            // checks if the current value 'v' is an empty string,
            // if it is supplies the default value (from the object), if not
            // it sets the value to the current value
            return v == '' ? defaults[this.id] : v;
    });
});

JS フィドルのデモ

参考文献:

于 2013-04-22T16:44:59.380 に答える