7

入力値が空でなく、デフォルトでもないかどうかをチェックするためのエレガントな方法を探しています。

たとえば、値を入力したとしますUsername。これはデフォルト値であり、ユーザーがこの入力フィールドUsernameをクリックすると削除されるため、ユーザーは必要なものを入力できます。明確にするために、これはページがロードされたときの外観です。

<input type="text" class="defaultValue" value="Username" />

これで、デフォルトでは、ユーザーが何かをして空にしない限り、このフィールドが空になることはありません。したがって、両方をチェックする必要があることを確認するだけです。私がこれを行う方法は非常に簡単です:

if($(".defaultValue").val().length == 0 || $(".defaultValue").val() == "Username")
   alert("Please enter your username");

したがって、これは機能しますが、地獄のように醜く見えます。そして通常、私は巨大なフォームを処理する必要があるので、これのために私のコードは本当に醜くて管理が難しくなります、これを改善する方法はありますか?

ありがとう。

4

2 に答える 2

17

試す:

if (this.value == '' || this.value == this.defaultValue) {
  // value is empty or is default value
}
于 2013-03-06T22:17:18.800 に答える
4

このチェックを行うヘルパー関数を作成してみてください。

var isEmptyOrDefault = function(field, default) {
    var value = $(field).val();
    return (value.length === 0 || value === default);
};

だからあなたはそれを使うことができます:

if (isEmptyOrDefault($('.defaultValue'), 'Username')) {
    alert("Please enter your username");
}
于 2013-03-06T22:18:44.270 に答える