2011-09-12 45 views
1

我有一個使用jQuery Validate的多頁表單。jquery validate

在第1頁上,我有一個選擇下拉框,當有人選擇某個東西時,它會爲同一頁上的其他輸入字段加載規則。我的問題是,一旦用戶提交併轉到第2頁,並決定他需要更改某些內容,他會回到第1頁,並且某些規則未被應用,因此唯一的方法是重新選擇選擇重新申請這些JQuery驗證規則..

我需要確保這些規則正在被重新應用在重新加載頁面...

我希望這是有道理的,並希望有人有一個簡單快捷的答案。

+0

需要一些代碼....無論是使用cookie,或者使用GET屬性的規則集存儲? –

回答

0

你可以在一個PHP會話保存所選的選項第2頁:

session_start(); 
$_SESSION['yoursession'] = $_POST['option']; 

在第1頁添加,節省會議在JavaScript的變量。 使用json_encode()正確逃避它:

<script type="text/javascript"> 
    <?php echo 'var option = "'.json_encode($_SESSION['yoursession']).'";'; 
</script> 

所以,如果你去到會話設置與已第1頁上選擇的選項2頁,如果你回到會話的內容保存在變量中。

0

ASP.NET MVC and partial client side validation

看看吧。

您可以通過編程方式調用$('#myform').validate()$('#myform').valid()來確定表單是否有效並轉到下一步。

$(".stepButton").live("click", function() { 
    if (isValid(this)) { 
     // code to proceed to next step 
    } 
}); 

function isValid(el) { 
    var $thisform = $(el).parent().parent(); 
    $thisform.validate(); 
    return $thisform.valid(); 
} 
0

您應使用2種形式,每種形式都有一個不同的id,併爲每個形式聲明一組驗證規則。 嘗試你的代碼適應這種:

var validationRules1 = { 
     rules: { 
      ... 
     }, 
     messages: { 
      ... 
     } 
    }; 

    var validationRules2 = { 
     rules: { 
      ... 
     }, 
     messages: { 
      ... 
     } 
    }; 

    var form1 = $('#form1'); 
    form1.submit(function() { 
     form.validate(validationRules1); 
     return form1.valid(); 
    }); 


    var form2 = $('#form2'); 
    form2.submit(function() { 
     form.validate(validationRules2); 
     return form2.valid(); 
    }); 

希望這有助於