Jquery mobile jquerymobile表单在移动浏览器上无法正常工作,但在桌面浏览器上可以正常工作?

Jquery mobile jquerymobile表单在移动浏览器上无法正常工作,但在桌面浏览器上可以正常工作?,jquery-mobile,Jquery Mobile,我的jqm表单在移动浏览器(ipad1safari、androiddolphin)中工作不正常,但在桌面浏览器(Chrome、Firefox、Safari和Win7上的IE9)中工作正常 表单首先询问用户希望如何联系他们(电子邮件、短信和/或帖子),然后根据此选择更新所需字段(通过validationEngine.js插件进行验证) 表单的示例可以是 脚本的逻辑是,它检查复选框是否已选中(或取消选中),然后添加(或删除)一个类以使其成为必需的,如下所示 $('body').delegate('#

我的jqm表单在移动浏览器(ipad1safari、androiddolphin)中工作不正常,但在桌面浏览器(Chrome、Firefox、Safari和Win7上的IE9)中工作正常

表单首先询问用户希望如何联系他们(电子邮件、短信和/或帖子),然后根据此选择更新所需字段(通过validationEngine.js插件进行验证)

表单的示例可以是

脚本的逻辑是,它检查复选框是否已选中(或取消选中),然后添加(或删除)一个类以使其成为必需的,如下所示

$('body').delegate('#byEmail_label', 'click tap', (function(event) {
  if (!$("#byEmail").is(":checked")) 
   {    
        $('#req_email').addClass('reqField');
        $('#email').addClass("validate[required,custom[email]]");
  }
  else
   { 
        $('#req_email').removeClass('reqField');
        $('#email').removeClass("validate[required,custom[email]]").validationEngine('hide');   
  }
})
);
在没有.delegate()的情况下,我可以100%工作,但是在添加.delegate之后,我无法通过ajax加载表单,除了在移动浏览器中,所有这些都可以正常工作

有没有人经历过类似的事情,或者有没有人知道我怎样才能让它工作


谢谢

我的复选框和收音机也有问题,这就是我用的。可能有助于检查该值,而不是检查该值

alert($('input[name=byEmail]:checked').val());

也许是这样的

var addValidation = ($('input[name=byEmail]:checked').val() != '') ? true:false;

if(addValidation) {    
    $('#req_email').addClass('reqField');
    $('#email').addClass("validate[required,custom[email]]");
} else { 
    $('#req_email').removeClass('reqField');
    $('#email').removeClass("validate[required,custom[email]]").validationEngine('hide');   
}

我也有问题的复选框和收音机,这是我用的。可能有助于检查该值,而不是检查该值

alert($('input[name=byEmail]:checked').val());

也许是这样的

var addValidation = ($('input[name=byEmail]:checked').val() != '') ? true:false;

if(addValidation) {    
    $('#req_email').addClass('reqField');
    $('#email').addClass("validate[required,custom[email]]");
} else { 
    $('#req_email').removeClass('reqField');
    $('#email').removeClass("validate[required,custom[email]]").validationEngine('hide');   
}

最终通过将所有jquery移到外部解决了我自己的问题

 $(document).ready(function () {...
进入

$('*').delegate('body','pagecreate', function(){...
即:


现在我的头感觉好多了。。。不要再把它砸在桌子上了……

最终通过将所有jquery移到桌面之外解决了我自己的问题

 $(document).ready(function () {...
进入

$('*').delegate('body','pagecreate', function(){...
即:


现在我的头感觉好多了。。。不要再把它放在桌子上了…

谢谢你的回答,Phill,令人烦恼的是,如果没有.delegate()和ajax页面加载,代码工作得很好。点击(函数(事件){if($)(“{byEmail”).is(“:checked”){$(''req_email').addClass('reqField');$('email').addClass('validate[required,custom[email]])点击(函数(事件){if($('byEmail”).is(“:checked”){$('removeClass('reqField);$)('removeClass('validate[required,custom email]]).validate('validate('required])隐藏); } });`谢谢你的回答,Phill,令人烦恼的是,如果没有.delegate()和ajax页面加载,代码工作得很好。点击(函数(事件){if($)(“{byEmail”).is(“:checked”){$(''req_email').addClass('reqField');$('email').addClass('validate[required,custom[email]])点击(函数(事件){if($('byEmail”).is(“:checked”){$('removeClass('reqField);$)('removeClass('validate[required,custom email]]).validate('validate('required])隐藏); } });`