0

我坚持使用 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 始终为空。我还尝试了 option:selected 和类似的可能性。

显然,当我选择一个选项时,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)而不是文本(上例中的“常规运动”。

4

4 回答 4

1

好吧,还有一个额外的功能可以获取选择更改。

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

感谢 Raminson 和 thecodeparadox 为我指明了正确的方向。

于 2012-05-27T10:34:42.367 回答
0

你怎么调用这个getValue()函数?

试试这个:

$('#activity').change(function(){
    getValue();
})
于 2012-05-27T09:54:44.583 回答
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;
});
于 2012-05-27T09:54:44.630 回答
0

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

于 2013-09-29T15:10:42.330 回答