JQuery Mobile阻止无线电被检查

时间:2014-12-16 15:05:22

标签: javascript jquery jquery-mobile

我以这种方式使用JQuery Mobile制作一个简单的广播组:

        <fieldset id="current_status" data-role="controlgroup" data-type="horizontal">
            {% for state in states %}
                <input type="radio" name="state-choice" id="state-{{ state.id }}" value="{{ state.id }}" data-code="{{ state.code }}"
                    {% if state == currentState %}checked="checked"{% endif %} 
                />
                <label for="state-{{ state.id }}">{{ state.description }}</label>
            {% endfor %}
        </fieldset>

我需要验证更改,所以我尝试使用以下所有内容:

    $(document).ready(function() {
        $('#current_status label').click(function(event) {
            event.stopPropagation();
            event.preventDefault();
            changeStatus($(this));
            return false;
        });

        $('#current_status input').click(function(event){
            event.stopPropagation();
            event.preventDefault();
            changeStatus($(this));
            return false;
        });
        . . . . . . . . . . . . . . . . . . .
    });

在我的电脑浏览器中,它有效。 但在移动浏览器中,改变并未被阻止。 这可能是个问题?

1 个答案:

答案 0 :(得分:2)

我认为问题在于您的移动浏览器不会触发点击事件,而是触发/点击事件等。

有一个名为&#34; vclick&#34;的事件。在jQuery Mobile中解决这个问题。

但在您的情况下,听取输入字段的值更改可能是一个更明智的想法。

$('#current_status input').on('change',function(event){
  event.stopPropagation();
  event.preventDefault();
  changeStatus($(this));
  return false;
});