jQuery仅显示所选选项之一+必需

时间:2019-07-06 21:19:39

标签: jquery html input

当前,我的问题是我显示所有选项,而仅需要选择的选项。如果未选择任何内容,则仅在选择其中一个选项时才显示该选项。

所选选项应具有必填字段。由于两者都是必需的,因此无法提交。

感谢您的解释,建议和支持。

$(document).ready(function(){

$('#problem').on('change', function(){
$('.display, .display_1').show();


if (this.value.trim()) {
   if (this.value !== 'test') {
   $('.display').hide();
   }

if (this.value !== 'test1') {
   $('.display_1').hide();
   }   
  }
 });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
<form id="e">
<table id="tableId">
<tr>	
<td>Problem:</td>
<td><select required id="problem" name="problem">
<option value=""></option>
<option value="test">test</option>		
<option value="test1">test1 </option>
</select>
</td>
</tr>


<tr class="display">
<td>Router</td>
<td><input id="router" name="router" type="text" maxlength="50" size="50" required></td>
</tr>

<tr class="display_1">
<td>Switch</td>
<td><input id="switch" name="switch" type="text" maxlength="50" size="50"    required></td>
</tr>
<tr>
 <td><input type="submit"  class="submit" value="submit"></td>
</tr>
</table>
</form>

1 个答案:

答案 0 :(得分:1)

我清理了HTML并添加了一些CSS。基本上,这是一个简单的if语句,根据select语句的值显示一个或另一个输入字段:

$(document).ready(function(){

    $("#problem").on("change", function(){
        $(".input.text").hide();
        $(".input.text input").removeAttr("required");
        if(this.value === "test"){
            $(".input.text#router").show();
            $(".input.text#router input").prop("required", true);
        }else if(this.value === "test1"){
            $(".input.text#switch").show();
            $(".input.text#switch input").prop("required", true);
        }
    });
});
form .input{
   display: flex;
   margin-bottom: 10px;
}

form .input input, form .input select{
   margin-left: 20px;
}

form .input.text{
    display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
<form id="e">
    <div class="input">
        <span>Problem:</span>
        <select required id="problem" name="problem">
            <option value=""></option>
            <option value="test">test</option>		
            <option value="test1">test1 </option>
         </select>
    </div>
    <div class="input text" id="router">
        <span>Router</span>
        <input id="router" name="router" type="text" maxlength="50" size="50">
    </div>
    <div class="input text" id="switch">
        <span>Switch</span>
        <input id="switch" name="switch" type="text" maxlength="50" size="50">
    </div>
    <input type="submit"  class="submit" value="submit">
</form>