2012-05-27 46 views
0

我一直在用jQuery Mobile獲取選擇列表中的選項的值屬性。獲取jQuery Mobile中選擇列表的選定值(不是文本)

我的HTML模板:

<div data-role="fieldcontain" class="activity ui-hide-label"> 
    <label for="activity">Activity</label> 
    <select name="activity" id="activity"> 
    <option value="">Activity</option> 
    <option value="3">Athlete</option> 
    <option value="2">Regular sports</option> 
    <option value="1">No sports</option> 
    </select> 
</div> 

我的JS函數來獲取值:

function getValue() { 
    var activityValue = $('#activity').val(); 
    console.log("activity value: ", activityValue); 
    localStorage['activity'] = activityValue; 
} 

無論我選擇列表選擇什麼,變量activityValue總是空的。我也試着選擇:選擇和類似的可能性。

當我選擇一個選項時,DOM選擇列表顯然不會改變。例如,如果我選擇「常規運動」,DOM看起來像這樣:

<div data-role="fieldcontain" class="activity ui-hide-label ui-field-contain ui-body ui-br"> 
    <label for="activity" class="ui-select">Activity</label> 
    <div class="ui-select"> 
     <div data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-icon="arrow-d" data-iconpos="right" data-theme="g" data-inline="false" data-mini="false" class="ui-btn ui-shadow ui-btn-corner-all ui-fullsize ui-btn-block ui-btn-icon-right ui-btn-up-g"> 
     <span class="ui-btn-inner ui-btn-corner-all"> 
      <span class="ui-btn-text">Regular sports</span> 
      <span class="ui-icon ui-icon-arrow-d ui-icon-shadow">&nbsp;</span> 
     </span> 
     <select name="activity" id="activity"> 
      <option value="">Activity</option> 
      <option value="1">Athlete</option> 
      <option value="2">Regular sports</option> 
      <option value="3">No sports</option> 
     </select> 
     </div> 
    </div> 
</div> 

我是否錯過了什麼?概括地說:我是否需要在上面的例子中所選擇的值(1,2或3),而不是文本(「定期運動」

回答

1

那麼,有一個額外的功能,以獲得選擇的變化。

$('#activity').live("change", function(event, ui) { 
    localStorage['activity'] = $(this).val(); 
}); 

釷向拉姆森求助,代碼排版指向正確的方向。

0

你怎麼罵的getValue()功能

試試這個:

$('#activity').change(function(){ 
    getValue(); 
}) 
+0

謝謝你指點我正確的方向。由於DOM不會更改,所以更改函數在jQuery Mobile中不起作用。但是jQuery Mobile有一個類似的功能,請參閱下面的答案。 – axooh

0
$('#activity').change(function() { // change event will fire on every selection change 
    var activityValue = $(this).val(); // this.value 
    console.log("activity value: ", activityValue); 
    localStorage['activity'] = activityValue; 
}); 
+0

謝謝你指點我正確的方向。由於DOM不會更改,所以更改函數在jQuery Mobile中不起作用。但是jQuery Mobile有一個類似的功能,請參閱下面的答案。 – axooh

0

var activityValue = $('#activity :selected').val();

相關問題