<script type="text/javascript">
$(document).ready(function(){
$("tr.reqDet").hide();
$("[title='requestType']").change(function(){
if ($("[title='requestType']").val()!=""){
$("#reqDet").hide();
} else {
$("#reqDet").show();
}
});
</script>
我无法让脚本中的if语句工作......
详细信息:我正在使用SharePoint,它会呈现一个带有属性title =“requestType”的下拉框。当requestType框没有设置为初始值,即“”时,我想要出现一个带有“reqDet”类的控件。
无论如何,谢谢大家。这是适用于我的解决方案:
<script type="text/javascript">
$(document).ready(function(){
$("tr.reqDet").hide();
$("select[title='requestType']").change(function(){
$(".reqDet").toggle($(this).val()!== "");
});
});
</script>
答案 0 :(得分:5)
更新回答:由于您提到“具有类reqDet
的元素”,问题在于您使用的是ID选择器(#reqDet
)而不是类选择器.reqDet
。
此外,除此之外,您还可以对代码进行一些改进:
this
,这样您就不必再次使用DOM了toggle
代替hide
和show
,让您失去if
所以你可以把它减少到这个:
$("select[title='requestType']").change(function(){
$(".reqDet").toggle($(this).val() == "");
});
答案 1 :(得分:1)
$(document.ready(function() {
var details = $('tr#reqDet');
var dropdown = $("select[title='requestType']");
details.hide();
dropdown.change(function() {
details.toggle(dropdown.val() === '');
});
});
答案 2 :(得分:1)
在为change事件添加侦听器之前是否故意隐藏带有classname reqDet的tr,然后尝试隐藏id为reqDet的元素?您还应该指定哪种类型的元素具有请求类型的标题:
<script type="text/javascript">
$(document).ready(function(){
$("tr.reqDet").hide();
$("select[title='requestType']").change(function(){
if ($(this).val()!=""){
$(".reqDet").hide();// should this be a class or id of reqDet
} else {
$(".reqDet").show(); // Change to "." to select class. # is selecting id so it isn't finding it.
}
});
</script>
答案 3 :(得分:0)
$(document).ready(function(){ $("tr.reqDet").hide(); $("select[title='requestType']").change(function(){ if ($("[title='requestType']").val()!=""){ $("#reqDet").hide(); } else { $("#reqDet").show(); } });
答案 4 :(得分:0)
我认为if语句工作正常,但其中的选择器是错误的。正如您所提到的,您要显示/隐藏的控件具有类reqDet
,请使用类选择器。试试这个。
$(document).ready(function(){
$("tr.reqDet").hide();
$("[title='requestType']").change(function(){
if ($(this).val()){
$(".reqDet").hide();
} else {
$(".reqDet").show();
}
});
});