0

Javascriptを使用して「リセットボタン」をクリックした後、フォームのテキスト入力を黒に変更しようとしているという問題があります。

問題を解決するために HTML でonResetを使用することを検討しましたが、 Javascript のみ(または必要に応じて JQuery) を使用してこれを解決する必要があるため、以下のHTML は編集できません。document.forms と getElementbyID("contact") を検討しましたが、そこから何をすべきかわかりません。

どんな助けでも感謝します!

ここに私のHTMLがあります:

<form id="contact" action="" onsubmit="checkContactForm( this ); return false;" >
<p>
  <label for="name">First name:</label>
  <input name="name" id="name" onfocus="resetField( this );" />
</p>
  <label for="message">Your Message:</label>
  <textarea name="message" id="message" onfocus="resetField( this );"></textarea>
</p>
<p>
  <button type="submit">Send Message</button>
  <button type="reset">Reset Form</button>
</p>

これが私のJavascriptです:

var requiredFields = [ "name", "message" ];


function resetField( theField ) {
  if ( theField.value == "Error" ) {
theField.value = "";
theField.style.color = "#000";
  }
}

function resetForm( theForm ){
for ( i in requiredFields ) {
    var fieldName = requiredFields[ i ];
    var theField = theForm[ fieldName ];
    theField.style.color = "#000";
    theField.value = "";
}
4

2 に答える 2

0

Javascriptを使用して「リセットボタン」をクリックした後、フォームのテキスト入力を黒に変更しようとしています。

clickこれは、のイベントを使用して実行できますjQuery。このような:

$('button[type="reset"]').click(function () {
  /* change the color using
   * $('input').css('color', '#000'); #000 is black..
   */
}

このようにして、リセットボタンをクリックすると、入力テキストの色が黒に変わります。

入力をリセットするjQueryコードは次のとおりです。

$('input[type="name"]').val('');

val メソッドの単一の引用符に注意してください。これにより、val が削除され、空の文字列に置き換えられます。としても二重引用符を使用できますval("")

var requiredFields = [ "name", "message" ];

これは正しい方法ではありませんinput[name="name"]。ただし、単純な jQuery を使用して、ID またはクラスの入力を変更できます。

あなたが使用している:

resetField( this );

scriptタグで使用しているため、これは機能しません

resetForm

これらは両方とも一致しないため、スクリプトは実行されません!

幸運を、

于 2013-10-12T13:21:27.340 に答える