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

Javascript 未选择下拉列表中的默认值,javascript,Javascript,我有一个下拉列表[事件、问题、问题、任务]。我已经编写了一个代码,当最终用户登录并有一个名为product的标记时,默认值应该是问题所在。然而,它似乎不起作用。它仍然为用户提供从列表中选择值的选项 $j(document).ready(function() { if(location.pathname == '/requests/new') { var ct = currentUser.tags; if(ct.indexOf("product") >= 0){ $j(docume

我有一个下拉列表[事件、问题、问题、任务]。我已经编写了一个代码,当最终用户登录并有一个名为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 = "");
 } 

 }
 })
注:此答案不正确。我会删除它一旦我知道OP阅读我的评论

它仍然为用户提供从列表中选择值的选项

$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 = "");
 } 

 }
 })
当然,设定值只会改变最初选择的值。如果要修复select元素的值,以便用户无法更改它,则必须将其设置为只读。让我们继续使用jQuery。您拥有的是DOM API和jQuery†的奇怪组合:

†:让我们仔细看看线路

$j(document.getElementById("ticket_fields_75389").value = "Problem");
这里到底发生了什么?显然我们有一个函数调用$j。。。我们把一些东西传给它。这是表达式的结果

document.getElementById("ticket_fields_75389").value = "Problem"
这将按ID查找元素,并将字符串问题分配给value属性。这是一个赋值表达式。赋值表达式的结果是赋值,即问题

这是传递给$j..的值,因此我们有$jProblem;。因为$j引用jQuery,所以这将搜索所有有标记名问题的元素,这在HTML中是不存在的。它还将返回一个jQuery对象,但您没有对它做任何操作


因此,包装为$j。。。是完全不必要的,甚至是错误的,即使它不会抛出语法或运行时错误

它不应该像$jticket_fields_75389.valProblem;嗨,我之所以使用这段代码是因为我在Zendesk中编写了一个API。这适用于另一个下拉列表。这里它不工作,这很奇怪。我试过这个建议,它不起作用。怎么不起作用?如果你能准确地描述你的问题和目标,我才能帮助你。假设你是一个终端用户,对某个项目有某种问题。我们有多种形式,您可以提出问题。例如销售。因为您的id与一个名为product的标记关联,并且您选择了销售表单。存在与表单关联的各种票据字段。一旦这样的字段是类型。其中包含所述的下拉列表。因为您有一个名为product的标签,所以默认选项应该是problem.OK。但你仍然没有解释到底什么不起作用。无论如何,我注意到readonly对select元素没有影响,所以这可能就是您所指的。我发现了这个问题,它解释了怎么做:。在你阅读我的评论之前,我会留下这个答案。请让我知道,然后删除它,因为它显然不能解决问题。