2011-02-24 103 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