0

我有一个简单的 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>
4

2 回答 2

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();
于 2012-12-28T20:57:23.537 回答
0

据我了解情况是,

如果用户带有这个 url->http://mysite/confirm

页面将正常加载,用户将输入自己的代码,然后单击提交按钮。

但是如果用户带有这个 url->http://mysite/confirm?code=xyz123

表单将加载默认代码“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
    }
});​
于 2012-12-28T20:59:56.907 回答