[英]Default Value in drop down list not being selected
我有一个下拉列表[事件,问题,问题,任务]。 当最终用户登录并有一个名为product的标签时,我已经编写了代码,默认值应该是问题。 但是,它似乎不起作用。 它仍然为用户提供从列表中选择值的选项。
$j(document).ready(function() {
if(location.pathname == '/requests/new') {
var ct = currentUser.tags;
if(ct.indexOf("product") >= 0){
$j(document.getElementById("ticket_fields_75389").value = "Problem");
}
else {
$j(document.getElementById("ticket_fields_75389").value = "");
}
}
})
注意:此答案不正确。 我知道操作员阅读了我的评论后,将其删除。
它仍然为用户提供从列表中选择值的选项。
好吧,当然,设置value
只会更改初始选择的值。 如果要“固定” select元素的值,以使用户无法更改它,则必须将其设置为只读 。 让我们坚持使用jQuery(您所拥有的是DOM API和jQuery †的怪异组合):
$j("#ticket_fields_75389").val("Problem").prop('readonly', true);
†:让我们仔细看一下这条线
$j(document.getElementById("ticket_fields_75389").value = "Problem");
这里到底发生了什么? 显然,我们有一个函数调用( $j(...)
),并将一些东西传递给它。 这种“东西”是表达的结果
document.getElementById("ticket_fields_75389").value = "Problem"
这将通过ID查找元素,并将字符串"Problem"
分配给value
属性。 这是一个赋值表达式 。 赋值表达式的结果是赋值,即"Problem"
。
那就是传递给$j(...)
,所以我们有$j("Problem");
。 由于$j
引用jQuery
,这将搜索标记名称 Problem
所有元素,而HTML中不存在。 它还将返回一个jQuery对象,但您对此没有做任何事情。
因此,即使没有引发语法或运行时错误,在$j(...)
的包装也是完全没有必要的,甚至是错误的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.