2

いくつかのオプションを含む選択ボックスのあるフォームがあります。ユーザーがその他のオプションを選択すると、非表示のテキスト フィールドが表示され、ユーザーは自分の選択を入力する必要があります。どちらのフォーム フィールドも必須フィールドです。しかし、「その他」以外のオプションを選択すると、検証が失敗します。誰かが私を助けることができますか?

コードを以下に示します。

<script >
 function opnSelect() {
      var opval = document.test_form.opns.value;
      if (opval == "Other") {

         // document.getElementById('td_options').style.display='none';
          document.getElementById('td_opns1').style.display="";
      }
      else if(opval!="Other"){

        document.getElementById('td_opns1').style.display='none';
      }

 }
</script>
<cfform name="test_form">
<table>
 <tr>
  <td width="120" align="right"><font color="#FF0000"><b>Please select from options</b></font></td>

    <td align="left" id="td_options">
        <cfselect size="1"  style="width:150px" name="opns" id="opns" required="true"   message="Please select any value" onchange="javascript:opnSelect();">
            <option value="" ></option>
            <option value="value1">value1</option>
            <option value="value2">value2</option>
            <option value="value3">value3</option>
            <option value="Other">Other</option>
         </cfselect>
    </td>

</tr>
 <tr id="td_opns1" style="display:none;"  >
   <td align="right"><b><font color="#FF0000"> your choice</font></b></td>
   <td align="left" >
    <cfinput type="text" name="opns1" id="opns1"  required="true"  message="Please enter your choice" >
 </td>
 </tr>
 </table>
<cfinput type="submit" value="submit" name="submit1">

4

1 に答える 1

2

最も簡単な解決策は、opns1 のデフォルト値を追加して、「その他」以外が選択されたときに必要な条件を満たすことだと思います。

<cfinput type="text" name="opns1" id="opns1" value="other"  required="true"  message="Please enter your choice" >

JSif (opval == "Other")条件に追加します

document.getElementById('opns1').value=""; // to clear "other" from the input.

フォームハンドラーで、 opns1 neq "other" を確認してください

<cfif form.opns1 neq "other">
  do something with the new value
</cfif>
于 2013-04-05T11:27:37.457 に答える