jQuery不显示表单字段

jQuery not displaying form fields

本文关键字:字段 表单 显示 jQuery      更新时间:2023-09-26

我有下面的jQuery脚本

<script>
$(document).ready(function(){
    $('#bashing_title').change(function(){
        $(".selectInput").hide();
        $("#"this.value).show();
    });
});
</script>

当选择下拉菜单时,应该显示一个表单字段。但事实并非如此。我猜这可能是因为生成的html是

<option value="Title 1" value="1">Title 1</option>
但是如果我把上面的jquery代码改成
<script>
$(document).ready(function(){
    $('#bashing_title').change(function(){
        $(".selectInput").hide();
        $("#1").show();
    });
});
</script>

它的工作原理。但我有大约10个不同的选项id。我怎么修理它?

我希望我说的有意义

变化

$("#"this.value).show();

$("#"+this.value).show();
并删除重复的value属性,即更改
<option value="Title 1" value="1">Title 1</option>

<option value="1">Title 1</option>

你应该写。

  $("#"+this.value).show();

更改为$ (" # " + this.value),告诉();

可不可以在#和this.value之间加个"+"那么简单

您需要正确连接字符串:

$("#" + this.value).show();

还有,你的HTML标记中有一个错误,它应该是这样的:

<option title="Title 1" value="1">Title 1</option>

而不是:

<option value="Title 1" value="1">Title 1</option>

其中,您有两个值,这在您的情况下会引起问题。

this不包含字符串,但包含一个对象:元素本身。this没有称为value的属性,因此this.value将不起作用。您必须访问由this.options[this.selectedIndex].value或通过jQuery $(this).val()选择的子节点。这应该是一个有效的解决方案:

$(document).ready(function(){
    $('#bashing_title').change(function(){
        $(".selectInput").hide();
        var element = $(this).val();
        $("#" + element).show();
    });
});