我有一个从SQL填充的下拉列表(select)。这是动态的,因此可以随时改变。我需要根据所选项TEXT而不是其值来隐藏输入字段。这是我目前的代码:
<select name='addEventEventName' style="width:180px" id="addEventEventName" onchange="EventChanged(this)">
</select>
<script>
function EventChanged(changedEvent)
{
if (changedEvent.value == "val1" || changedEvent.value == "val2")
{ $("#jmtest").hide(); }
else
{ $("#jmtest").show(); }
}
</script>
现在效果很好。但如果“val1”和“val2”在未来发生变化,它将会破裂。
我想使用Sickness(val1)和Holiday(val2)代替。我需要改变什么?
答案 0 :(得分:1)
<script type="text/javascript">
function EventChanged(selectEl)
{
var text = selectEl.options[selectEl.selectedIndex].text;
if (text == "Sickness" || text == "Holiday")
{ $("#jmtest").hide(); }
else
{ $("#jmtest").show(); }
}
</script>
是的吗?我发现使用文本标签作为任何数据决策的基础通常是不好的做法。这打破了MVC模式。
答案 1 :(得分:1)
我认为这就是你要找的东西:
<强> HTML:强>
<select name="ddlSample" id="ddlSample">
<option value="1">Sickness</option>
<option value="2">Holiday</option>
<option value="3">Sample1</option>
<option value="4">Sample2</option>
</select>
<强> JQuery的:强>
$("#ddlSample").change(function(){
if($(this[this.selectedIndex]).text()=="Sickness" || $(this[this.selectedIndex]).text()=="Holiday")
{
alert("Hide input field here.");
//$("#jmtest").hide();
}
else
{
alert("Show input field here.");
//$("#jmtest").show();
}
});
答案 2 :(得分:0)
changedEvent.text== "Sickness" || changedEvent.text== "Holiday"
在if条件下使用此选项。即用文本属性更改组合的value属性。
答案 3 :(得分:0)
changedEvent.options[changedEvent.selectedIndex].text == "Sickness" || changedEvent.options[changedEvent.selectedIndex].text == "Holiday"