我一直坚持使用jQuery Mobile在选择列表中获取选项的value属性。
我的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"> </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)而不是文本(上例中的“常规运动”。
答案 0 :(得分:1)
嗯,还有一个额外的功能来获取选择的更改。
$('#activity').live( "change", function(event, ui) {
localStorage['activity'] = $(this).val();
});
感谢Raminson和codeparadox指引我指向正确的方向。
答案 1 :(得分:0)
如何调用getValue()
函数?
试试这个:
$('#activity').change(function(){
getValue();
})
答案 2 :(得分: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;
});
答案 3 :(得分:0)
var activityValue = $('#activity :selected').val();