0

代わりに、デフォルトの「値」をいくつかの動的アクションに置き換えました。入力ボックスにデフォルト値があり、ユーザーがクリックするとデフォルト値が削除されます。ユーザーが何も入力せずに放置すると、デフォルト値が再表示されます。ここまでは順調ですね。

問題は、ユーザーがフォームを送信して名前フィールドを空のままにすると、結果として何もないか空のフィールドではなく、デフォルト値を取得することです。

<input style="width:95%;" type="text" name="email" 
onfocus="if(this.value==this.defaultValue)this.value=''" 
onblur="if(this.value=='')this.value=this.defaultValue" 
value="<?php echo $entry_email; ?>" maxlength="27" size="50" />

私はしばらくSOを読んでいて、onfocusの代わりにonclickのような他のオプションを言っています。また、onsubmit に続いて、誰もがその関数を処理するようにコードを変更することを提案していますが、ここですべてが混ざり合って大きな混乱が生じます。この質問が何度も出されていることは知っていますが、それらはすべて js コードの更新に関係しています。

上記のコードを少し変更できると思っているので、デフォルト値が入力されているか空白であることを確認し、デフォルト値を送信しないでください。

御時間ありがとうございます。

4

3 に答える 3

0

htmlコードとjsコードを分離してみてください。jqueryを使用すると、簡単に習得できます

<input style="width:95%;" type="text" id="email" name="email" value="<?php echo $entry_email; ?>" maxlength="27" size="50" />
<script language="javascript" src="http://code.jquery.com/jquery.min.js"></script> 
<script language="javascript">         
$('#email').blur(function() {
          $('#email').val(defaultValue);
        });
</script>

そして、ユーザーの電子メール値がデフォルト値と等しいかどうかを確認してから、フォームの送信を停止します。

于 2012-12-11T21:04:18.183 に答える
0

ユーザーが送信ボタンをクリックすると、テキスト入力によって最初に onblur イベントがトリガーされ、次にフォームが送信されます。したがって、デフォルト値を送信しています。フォーム送信イベントの値と一致するデフォルトを確認します。

于 2012-12-11T20:53:40.820 に答える
0

placeholder内部inputタグを使用するだけです。

<input type="text" name="email" value="" placeholder="Enter Email">
于 2012-12-11T21:07:59.687 に答える