我有一个简单的html表单供用户确认。用户注册后,会向其发送一个指向此页面的链接,其中附加GET
变量,如下所示:http://mysite/confirm?code=xyz123
我正在使用jquery验证插件进行所有表单验证。
我有这个验证码:
<script type="text/javascript" language="javascript">
$(document).ready(function(){
$('#confirm').validate(
{rules: {
code: {
required: true,
minlength: 32,
maxlength: 32
}
},
messages: {
code: {
required: "Please enter the confirmation code",
minlength: "Confirmation code is {0} characters",
maxlength: "Confirmation code is {0} characters"
}
},
submitHandler: function(form){
$.get("confirmnewuser.php",
$('#code').val,
function(data){
if(data.status == 0){
$('#message').append("<span class='error'>Error: " + data.message + "</span>");
}
else{
$('.container').hide();
$('.short_explanation').hide();
$('#message').append("<span>" + data.message + "</span>");
}
},
"json");
}
});
});
</script>
我想测试GET['code']
变量是否已设置,这可以像这样轻松完成:
var $_GET = <?php echo json_encode($_GET); ?>;
但是在这一点上我不知道哪里将它添加到我现有的验证代码中,我不知道如何调用表单提交处理程序(我对jquery /我相当新)的JavaScript)。
或者,如果未设置GET
变量,则页面应正常加载,然后用户可以在输入框中输入其代码。
编辑:添加了表单代码
<form id='confirm' method='get' accept-charset='UTF-8'>
<div class='short_explanation'>* required fields</div>
<div id='message'></div>
<div class='container'>
<label for='code' >Confirmation Code:* </label><br/>
<input type='text' name='code' id='code' maxlength="32" /><br/>
</div>
<div class='container'>
<input type='submit' name='submit' id="submit" value='Confirm' />
</div>
</form>
答案 0 :(得分:0)
尝试使用此代码。我还没试过呢
submitHandler: function(form){
if($('#code').val() == null || $('#code').val() == '')
return false;
$.get("confirmnewuser.php",
$('#code').val,
function(data){
if(data.status == 0){
$('#message').append("<span class='error'>Error: " + data.message + "</span>");
}
else{
$('.container').hide();
$('.short_explanation').hide();
$('#message').append("<span>" + data.message + "</span>");
}
},
"json");
}
你必须单独调用提交,提交按钮应该自动执行。
无论如何,您可以使用代码
来调用提交$('#confirm').submit();
答案 1 :(得分:0)
据我所知,情况是,
如果用户附带此url-&gt; http://mysite/confirm
页面将正常加载,用户将输入自己的代码,然后单击提交按钮。
但如果用户附带此url-&gt; http://mysite/confirm?code=xyz123
表单将加载defualt代码“xyz12”,并自动提交。
如果这是正确的,这是我的解决方案,
$(document).ready(function(){
var defaultCode = <?php echo json_encode($_GET); ?>;
if (defaultCode != "") {
$('#code').val(defaultCode); //set code
$('#confirm').submit(); //submit form, so submitHandler will handle it
}
});