首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >触发器自动选择下拉列表以显示其他隐藏字段

触发器自动选择下拉列表以显示其他隐藏字段
EN

Stack Overflow用户
提问于 2018-02-04 13:31:47
回答 2查看 201关注 0票数 3

嗨,我有下拉选择在我的形式是和否。当有人选择是时,它会多显示3-4个字段,当选择否时,它会隐藏其他字段。在我的表单中,当我们将用户带到从输入字段中的数据库中获取填充数据的页面时,也有修改选项。

现在的问题是,当某人被选择为yes,并且还提交了其他必填字段时。现在要修改数据,当此页面打开时,我可以看到自动选择了yes选项,但隐藏的字段没有显示,我们需要单击No,然后单击yes,然后显示其他填充的字段。我希望当选择的选项是yes时它应该自动打开。

代码语言:javascript
复制
<select name="tab" size="1" class="combo2" id="chkYes" required>
                                    <option value="">Select One</option>

                                    <option value="Yes" <?php if($oth_passport == 'Yes'){ echo "selected";}?>>Yes</option>
                                    <option value="No" <?php if($oth_passport == 'No'){ echo "selected";}?>>No</option>

                                </select>

其他字段是--

代码语言:javascript
复制
<tr id="issuc" style="display:none;">
<td>
<input name="oth_ppt" value="<?php echo $othppt;?>" required >
</td></tr>
<tr id="ppno1" style="display:none;">
<td>
<input name="oth_ntl" value="<?php echo $othntl;?>" required >
</td>
</tr>

控制它的Javascript代码是-

代码语言:javascript
复制
    <script>

$(document).ready(function(){
    $('#chkYes').on('change', function() {

    if ( this.value == 'Yes') {
      $("#issuc , #ppno1").show();
      $("#issuc input, #ppno1 input").prop("required", true);
    } else {
      $("#issuc , #ppno1").hide();
      $("#issuc input, #ppno1 input").prop("required", false);
    }
  });
});

</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-04 13:49:25

只需更新您的代码,只需一行即可加载或隐藏加载时的依赖内容:

代码语言:javascript
复制
<script>
$(document).ready(function(){
    $('#chkYes').on('change', function() {
        if ( this.value == 'Yes') {
            $("#issuc , #ppno1").show();
            $("#issuc input, #ppno1 input").prop("required", true);
        } else {
            $("#issuc , #ppno1").hide();
            $("#issuc input, #ppno1 input").prop("required", false);
        }
    }).trigger('change'); //HERE is the trick!!
});
</script>
票数 2
EN

Stack Overflow用户

发布于 2018-02-04 13:51:26

解决此问题的一种方法是手动触发change事件,如下所示:

代码语言:javascript
复制
$('#chkYes').trigger("change");

以下是更新后的代码:

代码语言:javascript
复制
$(document).ready(function() {
  $('#chkYes').on('change', function() {
    if (this.value == 'Yes') {
      $("#issuc , #ppno1").show();
      $("#issuc input, #ppno1 input").prop("required", true);
    } else {
      $("#issuc , #ppno1").hide();
      $("#issuc input, #ppno1 input").prop("required", false);
    }
  }).trigger("change");
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48605064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档