2011-02-24 99 views
1

我试着尽可能地把它弄清楚。我有一个接触形式的页上和远程PHP文件“random.php”,其产生2支随机数:PHP + jQuery .validate问题

<?php 
    $randomNum = rand(0,9); 
    $randomNum2 = rand(0,9); 
    echo $randomNum . ' + ' . $randomNum2; 
    $randomNumTotal = $randomNum + $randomNum2; 
?> 

父页面调用它是这样:

$(function() { 
    $.get('PHP/random.php', function (data) { 
    $('#ResetNumbers").val(data);  
}); 

,并且具有输入:

<input type="text" class="numbers" name="ResetNumbers" id="ResetNumbers" value="" size="6" readonly> 

这个问题没有问题,PHP文件输出的两个随机数,它们显示在页面上。 下面是问题: 我有第二个文本框,您必须添加两个数字才能使其生效。

<input type="text" class="numbers" name="ResetMath" id="ResetMath" size="6" maxlength="6" tabindex="27"> 

它从来没有工作。它总是说它没有正确添加。这里是我的验证规则的有关部分是在另一个远程文件:

ResetMath: { 
    required: true, 
    equal: <?php echo $randomNumTotal; ?> 
} 

由于这是一个远程文件(不想父页面上的验证规则),它似乎并没有越来越相同的数字。我如何解开这个混乱?

+0

远程文件在哪里写你的验证规则获得'$ randomNumTotal'的值..使用'console.log()'检查..你必须在验证页面上获取该值 – diEcho 2011-02-24 04:33:00

+0

只需粘贴console.log()where in验证脚本? – 2011-02-24 04:38:44

+0

您是否使用jQuery验证插件;即http://docs.jquery.com/Plugins/Validation/validate? – Wayne 2011-02-24 05:37:36

回答

1
ResetMath: { 
    required: true, 
    equal: <?php echo $randomNumTotal; ?> 
} 

似乎不正确。它应该是:

ResetMath: { 
    required: true, 
    equalTo: $('#ResetNumbers') 
} 

的API是here

+0

我不相信会得到两个数字的总和?它在所有页面上都有效,验证函数和$ randomNum + $ randomNum2函数。它将总和存储在$ randomNumTotal中,然后检查那个 – 2011-02-25 02:25:22

+0

哦,我明白了。但是如果你想使用equalTo,这个值必须存储在某个字段中,我假设它是$('#ResetNumbers')。 – Wayne 2011-02-25 02:31:59

+0

我需要将它存储在某处,但似乎无法让它工作 – 2011-02-25 02:57:40

0

您的验证规则如何获取其值$ randomNumTotal的值?这是否与返回$ randomNum和$ randomNum2的值相同?如果没有,你有一个问题 - (每个不同的随机数字)。

+0

是的,这是我的问题所在。我打算将$ randomNumTotal回显到父页面,看看是否有帮助。可能使用该值填充隐藏的输入并与之进行比较? – 2011-02-24 16:50:57

+0

是的,我已经考虑过类似项目的隐藏输入(我认为这是一个验证码)。这里的问题是,如果机器人驻留在前端代码中,那么它不会很难找到$ randomNumTotal。但如果你不那么担心,它会正常工作。 – Nick 2011-02-24 17:45:05