Javascript 使用Google可视化API调用要在Jquery验证中使用的正则表达式
我正在尝试使用Google visualization api查询电子表格,并将正则表达式返回到名为Javascript 使用Google可视化API调用要在Jquery验证中使用的正则表达式,javascript,jquery,regex,google-visualization,Javascript,Jquery,Regex,Google Visualization,我正在尝试使用Google visualization api查询电子表格,并将正则表达式返回到名为terms\u out的输入字段。然后,我希望Jquery使用这个返回的正则表达式值来验证我的表单 使用下面的代码,我只能在html中定义了terms\u out的值时验证我的表单。例如value=“^[0-9]+$” 这是完整的js /*Google Visualization api */ google.load('visualization', '1', {'packages':['core
terms\u out
的输入字段。然后,我希望Jquery使用这个返回的正则表达式值来验证我的表单
使用下面的代码,我只能在html中定义了terms\u out
的值时验证我的表单。例如value=“^[0-9]+$”
这是完整的js
/*Google Visualization api */
google.load('visualization', '1', {'packages':['corechart']});
google.setOnLoadCallback(GetTerms);
function GetTerms() {
var queryTerms = new
google.visualization.Query('https://docs.google.com/spreadsheet/ccc?key=1OE_9A-oeboj2XxAGDoz5o3q4vbGUDy4bDVajBFG1l1U&sheet=WR4');
queryTerms.send(handleQueryTermsResponse);
}
function handleQueryTermsResponse(response) {
if (response.isError()) {
alert('Error in ID Validation Query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
return;
}
var datatable2 = response.getDataTable();
var terms = datatable2.getValue(1,7);
document.getElementById('terms_out').value = terms;
}
/*Jquery Validator */
$(document).ready(function () {
$.validator.addMethod('regex', function(value, element, RegEx) {
return RegEx.test(value);
}, "Not Valid!");
var keyterms = document.getElementsById("terms_out")[0].val;
$("#Form").validate({
rules: {
summary: {
required: true,
regex: new RegExp(keyterms)
}
}
});
});
我对这一点很陌生,请原谅我的无知。在过去的几天里,我一直在努力解决这个问题,所以我非常感谢您提供的任何帮助 Doh!我想出来了。Jquery试图在输入的术语有值之前进行验证。我所要做的就是将验证包装在一个函数中,并在提交时调用它。像这样
<input id="terms_out" type="text" class="terms_out" name="terms_out" value=""/>
<form id="Form">
<input id='summary' name="summary" value="" />
<input type="submit" value="Go" onclick="changevalue()"/>
</form>
<script>
function changevalue() {
$.validator.addMethod('regex', function(value, element, RegEx) {
return RegEx.test(value);
}, "Not Valid!");
$("#Form").validate({
rules: {
summary: {
required: true,
regex: new RegExp($("#terms_out").val())
}
}
});
}
</script>
函数changevalue(){
$.validator.addMethod('regex',函数(值,元素,regex){
返回正则表达式测试(值);
},“无效!”;
$(“#表格”)。验证({
规则:{
总结:{
要求:正确,
regex:newregexp($(“#terms_out”).val())
}
}
});
}
/*Google Visualization api */
google.load('visualization', '1', {'packages':['corechart']});
google.setOnLoadCallback(GetTerms);
function GetTerms() {
var queryTerms = new
google.visualization.Query('https://docs.google.com/spreadsheet/ccc?key=1OE_9A-oeboj2XxAGDoz5o3q4vbGUDy4bDVajBFG1l1U&sheet=WR4');
queryTerms.send(handleQueryTermsResponse);
}
function handleQueryTermsResponse(response) {
if (response.isError()) {
alert('Error in ID Validation Query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
return;
}
var datatable2 = response.getDataTable();
var terms = datatable2.getValue(1,7);
document.getElementById('terms_out').value = terms;
}
/*Jquery Validator */
$(document).ready(function () {
$.validator.addMethod('regex', function(value, element, RegEx) {
return RegEx.test(value);
}, "Not Valid!");
var keyterms = document.getElementsById("terms_out")[0].val;
$("#Form").validate({
rules: {
summary: {
required: true,
regex: new RegExp(keyterms)
}
}
});
});
<input id="terms_out" type="text" class="terms_out" name="terms_out" value=""/>
<form id="Form">
<input id='summary' name="summary" value="" />
<input type="submit" value="Go" onclick="changevalue()"/>
</form>
<script>
function changevalue() {
$.validator.addMethod('regex', function(value, element, RegEx) {
return RegEx.test(value);
}, "Not Valid!");
$("#Form").validate({
rules: {
summary: {
required: true,
regex: new RegExp($("#terms_out").val())
}
}
});
}
</script>