JQuery显示/隐藏Divs问题

时间:2014-03-21 19:17:31

标签: javascript jquery sql-server

我正在运行SQL查询以获取下拉选择值。这些值现在是int。

我需要做的是在下拉值为“其他”时显示div

所以我使用这个Jquery代码来获取所选下拉列表的 text 。哪个工作正常。

Working Example Fiddle

<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();
});

4 个答案:

答案 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();
});