2012-08-13 219 views
-3

我有3个选项,我想自动选择由js函数给出的选项。jquery - 自动选择选项

<script type="text/javascript"> 
function makeOption(id){ 
    $("#category-list").val(id); 
} 
</script> 

...

<select name="category" id="category-list"> 
    <option value="1">FIRST</option> 
    <option value="2">SECOND</option> 
    <option value="3">THIRD</option> 
</select> 

<script>makeOption('<?php echo $_GET["id"];?>')</script> 

我不知道为什么它不工作。

+0

什么是 “不工作” 是什么意思?你生成的HTML是什么样的? – j08691 2012-08-13 17:05:23

+0

'function makeOption(id){'出现在你的页面中? – j08691 2012-08-13 17:15:25

回答

2

更改此:

<script>makeOption('<?php echo $_GET['id'];?>')</script> 

到:

<script type='text/javascript'>makeOption('<?php echo $_GET["id"];?>')</script>; 

尝试把$(document).ready()处理程序中的代码:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     function makeOption(id){ 
      $("#category-list").val(id); 
     } 
     makeOption('<?php echo $_GET["id"];?>') 
    }) 
</script> 
+1

我不认为这很重要,因为PHP将首先被服务器处理,然后将结果代码发送到浏览器而不存在任何引用问题。 – j08691 2012-08-13 17:04:41

+0

我想自动选择基于$ _GET ['id']变量的选项。 我意外地错了代码,因为我在这里重写了,当我提出这个问题时。我用js提醒了id,id很好。 – 2012-08-13 17:12:37

+0

@ReterasRemus尝试更新的答案。 – undefined 2012-08-13 17:17:27

0

,而不是设置选择的值,设置其中一个选项离子被选择。

替换此

function makeOption(id) { 
    $("#category-list").val(id); 
} 

与此

function makeOption(id) { 
    $($("#category-list option")[id]).attr('selected', 'selected'); 
} 
+0

http://i50.tinypic.com/35dahj5.png – 2012-08-13 17:20:36

+0

我的这个小疏忽。我修复了它。 – yoozer8 2012-08-13 17:26:27

+0

原始版本返回一个DOM元素而不是一个jQuery对象。用jQuery再次选择它可以让你使用jQuery的'attr'方法 – yoozer8 2012-08-13 17:27:57