0

2つのラジオボタンAとBがあります。Bボタンにも1つのテキストフィールドがあります。

デフォルトでは、次のボタンは非表示になっており、次の場合に表示されます。

  1. ユーザーがボタンAをクリックした場合
  2. ユーザーがボタンBをクリックし、テキストフィールドにテキストを入力します

私はこれを試してみます:

JavaScript

window.onload=function(){
   document.getElementById("next").style.display='none';
} 

function shownext(){
  var A = document.getElementById('A').value;
  var B = document.getElementById('B').value;
  var name = document.getElementById('name').value;
  if(A != "" || (B != "" && name != "")){
  document.getElementById("next").style.display='block';
     return false;
  }
  if(A == "" && B == "" && name == ""){
  document.getElementById("next").style.display='none';
     return false;
  }
}

HTML

<input type="radio" name="A" id="A" value="A" onClick="shownext();"/>
<input type="radio" name="A" id="B" value="B" onClick="shownext();"/>
<input type="text" name="name" id="name" onKeyDown="shownext();" onKeyUp="shownext();"/>

<a href="#q2" id="next"><img src="next.png"/></a>
4

1 に答える 1

1

最初のステートメントに構文エラーがありますif—閉じているよりも多くの括弧を開いています。

ラジオボタンには常にが付いているため、値を調べるだけではラジオボタンvalueの状態を確認できません。checked代わりに、それらのプロパティを検査する必要があります。

ifまた、両方のsは必要ありません。基本的に、可能な結果は2つしかないため([次へ]ボタンを表示するか非表示にする) else、最初の1ifつがより適切です。

これが修正されたコードの動作デモです。

于 2013-01-21T07:46:32.460 に答える