2つのフォーム入力が一致するかどうかに応じて、ページ上の要素を表示/非表示にします。したがって、この例では、テキストフィールドが100000より大きく、ラジオボタンに特定の値がある場合、その要素が表示されます。正しい無線がまだ選択されているが、数値が100000を下回る場合、要素は非表示になります。(このコードは、意味がない場合に備えて、はるかに大きなスクリプトの一部です)。
ほとんどの場合は機能しますが、ラジオ値イベントとともに使用すると、テキストフィールドのonchange
/onkeyup
イベントはそれ自体では発生しませんonclick
。イベントを発生させるには、変更されたテキストフィールド値のラジオボタンを再度クリックする必要があります。(そして、それはonblur
問題ではありません。onchange
それ自体では正常に機能しますが、論理&&
演算子では機能しません。)
<li id="f-container-applicant-bondamount">
<label for="f-applicant-bondamount">Amount of Bond</label>
<input type="text" name="ApplicantBondAmount" id="f-applicant-bondamount" onkeypress="showMoreInfo(this);" />
</li>
<li id="f-container-applicant-is">
<label for="f-applicant-is">Applicant is...</label>
<ul>
<li>
<label for="f-applicant-is_0">
<input type="radio" name="ApplicantIs" id="f-applicant-is_0" value="Administrator" onclick="showMoreInfo(this);" />
Administrator
</label>
</li>
<li>
<label for="f-applicant-is_1">
<input type="radio" name="ApplicantIs" id="f-applicant-is_1" value="Executor" onclick="showMoreInfo(this);" />
Executor
</label>
</li>
</ul>
</label>
</li>
<li id="f-container-applicant-moreinfo">
<label for="f-applicant-moreinfo">More Info</label>
<input type="text" name="ApplicantMoreInfo" id="f-applicant-moreinfo" />
</li>
function showMoreInfo(x) {
var bond = document.getElementById('f-applicant-bondamount');
var y = bond.value;
if (y > 100000 && x.value == "Administrator") {
document.getElementById('f-container-applicant-moreinfo').style.display = 'block';
}
else if (y <= 100000 && x.value == "Administrator") {
document.getElementById('f-container-applicant-moreinfo').style.display = 'none';
}
}
前もって感謝します。