我正在运行SQL查询以获取下拉选择值。这些值现在是int。
我需要做的是在下拉值为“其他”时显示div
所以我使用这个Jquery代码来获取所选下拉列表的 text 。哪个工作正常。
<select name="hours" id="hours" class="time">
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">Other</option>
<option value="06">06</option>
</select>
脚本
<script type="text/javascript">
$('#hours').change(function() {
$('#hours_text').val( this.value );
$('#hours_text2').val($('option:selected',this).text());
});
</script>
问题是当我隐藏div时。 文本未传入Jquery。它只接受期权价值。我需要它接受文本值“其他”而非 05
在值为varchar之前,这不是以前的问题。
以下是隐藏和显示Div。(不工作)Fiddle
的代码$('#hours').change(function () {
$('#hours_text').val($('option:selected', this).text());
$('.showotherpDescription').hide();
$('#' + $(this).val()).show.text();
});
答案 0 :(得分:1)
试试这个:
$('#hours').change(function () {
$('#hours_text').val($('option:selected', this).text());
$('.showotherpDescription').hide();
$('#' + $('option:selected', this).text()).show();
});
<强> DEMO 强>
答案 1 :(得分:0)
用于检查选项包含的文本的属性是.html()而不是.val()
答案 2 :(得分:0)
你可以这样做:
$('#hours').change(function () {
var sel = $('option:selected', this).text();
if (sel == "Other") {
$('.showotherpDescription').show();
} else {
$('.showotherpDescription').hide();
}
});
答案 3 :(得分:0)
在这里,这应该可以解决问题。我添加了一些控制台输出,以便您可以看到内容和原因:
$('#hours').change(function () {
$('#hours_text').val($('option:selected', this).text());
$('.showotherpDescription').hide();
console.log($(this).val());
console.log(this.selectedIndex);
console.log(this.options[this.selectedIndex]);
console.log(this.options[this.selectedIndex].innerHTML);
$('#' + this.options[this.selectedIndex].innerHTML).show();
});