2012-04-16 73 views
0

我不知道为什么这不起作用。任何人都在关心刺伤?为什么不根据其他值下拉更改?

我用下面的表格。当用户在#frmcomments中选择“禁用”选项时,我希望#frmstatus更改为private的选项值。

<label for="type">Comments:</label> 
<select class="sort-select" id="frmcomments" name="frmcomments"> 
    <option value="enabled">Allow Comments</option> 
    <option value="disabled">No Comments</option> 
</select> 



<label for="type">Status:</label> 
<select class="sort-select" id="frmstatus" name="frmstatus"> 
    <option value="public">Anyone can see</option> 
    <option value="private">Only I can see</option> 
</select> 

我正在使用下面的jquery,但它的失败?

$('#frmcomments').change(function() { 
    var thistype = $(this).find(":selected").val(); 

    if(thistype=="disabled") { 
     $("#frmstatus").val("private"); 
    } 

    return false; 
}); 
+1

工作对我来说:http://jsfiddle.net/HzrKT/ – 2012-04-16 14:39:43

+0

我为好; http://jsfiddle.net/UnkBV/1/ – veeTrain 2012-04-16 14:43:07

+0

奇怪。如果我在提交时检查表单值,它将显示为私有值 - 但显示不会更改。 – Mike 2012-04-16 14:43:57

回答

1

检查您的thistype值。您应该可以拨打电话val()select,您不必拨打.find(":selected")即可获取选定的列表项。

+0

有关信息,请参阅以下片段:http://jsfiddle.net/22zsW/ – Ropstah 2012-04-16 14:40:39

+0

如果我抛出警报以输出thistype,它将禁用喊话。如果我删除.find(“:selected”)部分,也是如此。 – Mike 2012-04-16 14:40:46

+0

@Mike:查看片段... – Ropstah 2012-04-16 14:41:00

0
$('#frmcomments').change(function() { 
    var thistype = $(this).val(); 

    if(thistype=="disabled") { 
     $("#frmstatus").val("private").change(); 
    } 
    return false; 
}); 
0
var thistype = $(this).find(":selected").val(); 

试试这个

var thistype = $(this).val();