2012-08-13 166 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