Javascript 使用Google可视化API调用要在Jquery验证中使用的正则表达式

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

我正在尝试使用Google visualization api查询电子表格,并将正则表达式返回到名为
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>