我尝试过onchange和onclick事件,但我遇到了麻烦。执行我的代码时,Firebug告诉我我的showTextBox函数没有定义。
当为状态下拉列表选择值1时,我需要显示包含文本框的<div>
。我移动了选项标签中的onclick属性以及尝试过onchange属性,但仍未在Firebug中定义showTextBox()。
<select id="AddrType" onclick="showTextBox();"
height="30px" style="width: 90px">
<option value="10"></option>
<option value="0">City</option>
<option value="1">State</option>
<option value="2">Zip</option>
</select>
<br />
<div id="stateText" style="visibility: hidden">
State <input type="text" id="STATE"/>
</div>
以下是触发onclick或onchange事件时调用的函数:
function showTextBox() {
console.log("in check Drop down");
if ($('#AddrType').val() == 'State') {
$('#stateText').style.visibility = 'visible';
}
console.log($('#AddrType').val());
对此有任何帮助。我用谷歌搜索了它,但我似乎找不到有用的东西。我无法使用document.getElementById()
功能。
答案 0 :(得分:0)
您的val()
可能会返回"1"
而不是您正在检查的"State"
。
不仅在jQuery上,而且在将表单数据发布到服务器时,AddrType
的值将是所选value
元素的option
属性(“城市/州” / Zip“在你的情况下只是值的'标题'。”
答案 1 :(得分:0)
试试这个:
<script type='text/javascript'>
$(document).ready(function(){
$('#AddrType').change(function(){
if ($(this).val() == '1') {
$('#stateText').css({'display':'block'});
}
});
});
</script>
并将您的选择更新为:
<select id="AddrType" height="30px" style="width: 90px">
<option value="10"></option>
<option value="0">City</option>
<option value="1">State</option>
<option value="2">Zip</option>
</select>
此外,这完全正常。
<select id="AddrType" onchange="showTextBox()" height="30px" style="width: 90px">
<option value="10"></option>
<option value="0">City</option>
<option value="1">State</option>
<option value="2">Zip</option>
</select>
以及showTextBox()的位置:
function showTextBox(){
if ($('#AddrType').val() == '1') {
$('#stateText').css({'visibility':'visible'});
}