在DOM中插入jQuery验证代码
Inserting jQuery Validation Code into the DOM
我有一个ASP。. NET MVC3应用程序,我的任务是插入一些HTML代码(一些表单)和Javascript代码(主要是对插入表单的jQuery验证)到网页的DOM中- HTML和Javascript代码都通过Ajax调用返回:
var id = jQuery(this).attr("data-id");
var querystring = "id=" + id;
jQuery.ajax({
type: "GET",
url: "Home/GetEditViewHTMLById",
data: querystring,
dataType: "html"
}).done(function (msg_html) {
jQuery.ajax({
type: "GET",
url: "Home/GetEditViewJavascriptById",
data: querystring,
dataType: "script"
}).done(function (msg_javascript) {
jQuery("#content").html(msg_html); // inserting the HTML
var script = document.createElement("script");
script.type = "text/javascript";
script.text = msg_javascript;
document.body.appendChild(script); // inserting the Javascript - doesn't work
Edit(); // <- this function would be in the inserted Javascript code
});
});
"msg_javascript"变量包含Javascript代码,如果调用alert,可以看到Ajax调用的结果:
function Edit(){
jQuery("#plugin").validate( { errorElement: 'div' } );
jQuery("#sum1").rules("add", { required: true, messages: { required: "!" } });
jQuery.validator.addMethod("regex_sum1",
function (value, element, regexp) {
var check = false;
var re = new RegExp(regexp);
return re.test(value);
},
"Wrong number format!");
jQuery("#sum1").rules("add", { regex_sum1: "^[1-9][0-9]*$" });
jQuery("#sum2").rules("add", { required: true, messages: { required: "!" } });
jQuery.validator.addMethod("regex_sum2",
function (value, element, regexp) {
var check = false;
var re = new RegExp(regexp);
return re.test(value);
},
"Wrong number format!");
jQuery("#email").rules("add", { required: true, messages: { required: "!" } });
jQuery.validator.addMethod("regex_email",
function (value, element, regexp) {
var check = false;
var re = new RegExp(regexp);
return re.test(value);
},
"Wrong e-mail format!");
jQuery("#email").rules("add", { regex_email: "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+'.[a-zA-Z]{2,6}$" });
jQuery('input').blur(function(){
if(!jQuery(this).valid()){
return false;
}
});
function calculate(){
return (Number(jQuery('#sum1').val())*(Number(jQuery('#sum2').val())+0.5));
}
function getFields(){
return ["sum1","sum2"];
}
function validateRange(value){
return 1000 <= value && value <= 10000;
}}
如果我从服务器返回以下函数:
function Edit(){
alert("okay");
}
- 一切正常,并执行警报。如果我返回上面的Javascript函数,则该函数不会执行,而且我也无法在Firebug中看到脚本标记,因此我真的不知道如何调试这个问题。我做错了什么?请,任何帮助都是感激的。
Javascript不会在返回的变量中运行,你必须执行它:
eval(msg_javascript);
相关文章:
- 为什么此验证代码不起作用
- javascript验证代码不起作用
- 如何将我自己的验证代码添加到MooTools的lightface表单中
- 我将如何形成正确的 POST 请求以LinkedIn将临时身份验证代码交换为访问令牌,SSL3 是原因吗?
- JQuery 验证代码不允许删除输入的文本
- 用于 excel 文件上传 jQuery 的正则表达式验证代码
- 验证代码不起作用,直接重定向到操作路径
- 来自电子邮件的身份验证代码
- 此HTTP Get-Basic身份验证代码有什么问题
- 为什么我的验证代码不起作用
- 除非重新加载页面,否则Javascript会被困在验证代码的错误警报中
- Javascript验证代码,以确保至少标记了一个复选框
- 使用ajax更改验证代码
- 服务器级SDK,可以加载PDF文件并执行计算和验证代码片段
- JavaScript表单验证代码错误
- 验证代码问题
- knockoutJS中的验证代码不起作用
- 我应该在asp MVC中使用不显眼的javascript而不是编写自己的验证代码吗?
- 在DOM中插入jQuery验证代码
- JavaScript表单验证代码没有给出期望的结果