2012-01-20 9 views
2

this.defaultValueのisteadの下のコードでthis.defaultValue ? this.defaultValue : '':を使用する理由を覚えていません。jqueryの入力のデフォルト値をリセットします

$('input:text, textarea').blur(function() { 
if ($.trim(this.value) == ''){ 
this.value = (this.defaultValue ? this.defaultValue : ''); 
} 
}); 

なぜ、この:defaultValueが定義されていない場合

$('input:text, textarea').blur(function() { 
if ($.trim(this.value) == ''){ 
this.value = this.defaultValue; 
} 
}); 

答えて

1

、あなたはなぜHTML5のplaceholder属性を使用しないで、関連のノートで代わりに''

+0

おかげで良い機能その – Hakan

1

にうまく機能していません。 this.defaultValueundefinedの場合は、空の文字列を返し、this.valueが未定義であることを回避します。

このプロパティは<input>´ and `でのみ利用可能ですが、そのような機能の範囲をかなり制限しています。たとえば、フォーム内で選択を行うのはかなり一般的です。

より簡単なアプローチは、"data-"属性にデフォルト値を格納することです。これはHTML5の機能ですが、html属性のように後方互換性があります。

<select data-defaultValue="1"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
</select> 

そして、あなたが持つ属性にアクセスすることができます。

$('select').attr('data-defaultValue'); 
// or 
$('select').data('defaultValue'); 

より多くの情報:

関連する問題