繁体   English   中英

未选择下拉列表中的默认值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM