本文介绍了小号:复选框fieldValue方法的验证总是如此前提交的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用Struts 2 < S:复选框/>
在我的表格处理,与AngularJS和jQuery一起。
结果
在提交之前,我需要验证和到现在为止我们做这个项目:
当我们preSS提交按钮,这个功能叫做:
$ scope.processForm('myForm的','< S:url值=/表格/ validate.action />',
'< S:url值=/表格/ save.action/>');
,其中 processForm(formId,validateUrl,submitUrl)
是我们定义的函数:
$ scope.processForm =功能(表单,validateUrl,submitUrl){
window.scroll(0,0);
ProccessFormService.processStandarForm(形式,validateUrl,submitUrl);
};
,此外,我们有 processStandarForm()
在一个全球性的服务定义的:
angular.module('ourApp')。控制器('myFormCtrl',
功能($范围,$莫代尔,ProccessFormService){
...
}
在服务:
(函数(){
angular.module('ourApp')。工厂('ProccessFormService',['$ HTTP',函数($ HTTP){ processStandarForm:功能(表单,validateUrl,submitUrl){
this.processForm(形式,validateUrl,submitUrl);
}, processForm:功能(表单,validateUrl,submitUrl,成功){ 如果((typeof运算形式)=='串'){
表=的document.getElementById(表);
} VAR数据= this.form2Object(表);
VAR CTRL =这一点; 如果(数据){
如果(validateUrl){
$ HTTP({
方法:POST,
网址:validateUrl,
数据:$ .PARAM(数据),//传递数据串
标题:{内容类型:应用程序/ x-WWW的形式urlen codeD'}
//设置页眉所以角传递信息的表格数据(而不是请求负载)
})。成功(函数(){
如果(!成功){
form.action = submitUrl;
form.submit();
}其他{
ctrl.submitAjaxForm(submitUrl,数据,成功)
}
});
}否则如果(submitUrl){
如果(!成功){
form.action = submitUrl;
form.submit();
}其他{
this.submitAjaxForm(submitUrl,数据,成功)
}
}
}
},
}
基本上,我们两次提交表单,先进行验证,然后提交。
我不明白的是,如果我在调试动作类,在功能的validate()
的布尔值< S:复选框/>
永远是正确的,但在提交()
函数,布尔值正确提交,根据。他们检查/未检查 Checkboxs是这样的:
< DIV CLASS =COL-SM-12表格,勾选>
< S:复选框名称=myForm.married
NG-模式=checkboxModel
值=< S:属性值='%{} myForm.married/>中
NG-变化=submitCheckbox();
NG-的init =checkboxModel =%{} myForm.married
主题=简单
NG-禁用=anotherFunction()/>
< / DIV>
我的理解是,提交的值 fieldValue方法=XXX
在< S:复选框/>
,并且默认为true。所以,我这样做是为了改变 fieldValue方法
每个复选框
加载页面之前。虽然所有的脚本执行,没有什么改变。我仍然得到所有真正的验证。
$(文件)。就绪(函数(){
$(输入:复选框)。每个(函数(){
VAR复选框= $(本);
VAR检查= checkbox.prop(选中); //血清假/真
如果(检查==真){
checkbox.prop(fieldValue方法,真);
}其他{
checkbox.prop(fieldValue方法,假);
}
});
});
所以,我怎样才能得到正确的布尔
值不仅在提交,而且在验证?是角服务写错了?我真的很怀疑,但我无法弄清楚的问题。
解决方案
怀疑数据
没有正确序列化与角 $ HTTP使用( )
。
如果你想模仿 $参数()
在使用jQuery的你应该使用内置串行的。
Another ways to convert from $.param
to angular you can find in Convert $.param in angularjs
这篇关于小号:复选框fieldValue方法的验证总是如此前提交的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!