0

我遇到了一个奇怪的问题。

我正在使用 Jquery mobile 和众所周知的验证插件。一切正常,除非我将 data-native 属性设为 false 。提交时出现错误消息,但在更改时永远不会消失。我错过了什么?UPDATE1:更奇怪的是,当您单击错误消息或提交按钮时它会更新

html代码:

<div id="invalid-id_form_choose" class="errors"></div>
        <select id="id_form_choose" name="question" data-theme="b" data-native-menu="false" class="question">
            <option value="">Veuillez choisir</option>
<option  value="FIRST_PET_NAME">Quel est le nom de votre premier animal de compagnie ?/option>
<option  value="MOTHER_PLACE_OF_BIRTH">Dans quelle ville est née votre mère ?</option> 
        </select>

JS代码:

jQuery.validator.addClassRules({
    question:{
       required: true
    }
});
jQuery.validator.setDefaults({
errorPlacement: function(error, element) {

        error.appendTo('#invalid-' + element.attr('id'));


}
});
$(document).bind('pageinit',function(){
  $("#step1_form").validate({
     messages:{
         question:{
            required: "Veuillez renseigner ce champ obligatoire"
        }

    }
});

CSS 代码

.errors{
    color:red;
}
4

2 回答 2

1

data-native=false将隐藏原始选择框。

要验证它,您需要启用隐藏字段的验证。

在此处阅读有关它的更多信息:jQuery Validate - 为隐藏字段启用验证

于 2013-07-22T10:25:24.407 回答
0

好的,我找到了解决问题的方法,这绝对可以正常工作

我在 github https://github.com/anumonk/mobileFormValidation上找到了这个很酷的代码 所以我改变了我的如下

我将此函数添加到我的 JS 代码中

function handleChangeEvent( event ) {
    // code based on the jQuery validation framework
    var validator = $.data( this[0].form, "validator" );
    validator.element( this[0] );
};

就在 $("#step1_form").validate 这段代码之前

changeEventTargets = "[type='radio'], [type='checkbox'], select, option";
$("#step1_form").validateDelegate( changeEventTargets, "change", handleChangeEvent );

希望它可以帮助其他人,在同样的情况下。

于 2013-07-25T11:57:09.900 回答