我目前正在把Jquery Mobile引入Yii的项目中,现在遇到这样的问题:
如果使用了类似ActiveForm的组建后,chrome调试窗口中会报"XX object has no method ‘yiiactiveform’"的错误信息。
根据我的推断,应该是Jquery mobile与Yii自己的activeform的js有冲突,造成:
$(’#xxx’).yiiactiveform(…)无法扩展xxx id的dom组件。
下面是生成的header部分
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/assets/3030425f/yii.debugtoolbar.css" />
<script type="text/javascript" src="/assets/1015b656/jquery.min.js"></script>
<script type="text/javascript" src="/assets/1015b656/jquery.cookie.js"></script>
<script type="text/javascript" src="/assets/1015b656/jquery.yiiactiveform.js"></script>
<title>Setting</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/jqmobile/css/jquery.mobile.css" />
<script src="/jqmobile/js/jquery.min.js" ></script>
<script src="/jqmobile/js/jquery.mobile.min.js"></script>
</head>
<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
$('#my-form').yiiactiveform({'validateOnSubmit':true,'attributes':[{'id':'userid','inputID':'userid','errorID':'userid_em_','model':'UserModel','name':'name','enableAjaxValidation':true,'clientValidation':function(value, messages, attribute) {
if($.trim(value)=='') {
messages.push("User \u4e0d\u53ef\u4e3a\u7a7a\u767d.");
}
}}],'focus':'#SsidFormModel_ssid'});
});
/*]]>*/
</script>
</body>
</html>