2013-10-10 44 views
-1

我在登陸頁面上有兩種形式。一種是捕捉潛在客戶(第一種形式),另一種形式根據用戶輸入的數據(第二種形式)在燈箱中顯示網頁。使用jQuery管理多個表單

如果用戶點擊退貨,兩個表單都會同時提交。這並不理想。我正在使用以下jQuery代碼來獲取最接近的表單。此代碼使燈箱可以打開,但是,這兩個表單仍然提交,因此沒有填充在燈箱中。最終用戶被重定向到應該在Lightbox中顯示的網頁。表單

<script> 
$("second-form").closest("form").submit(); 
$("input[type=text]") 
.keydown(function(e) { 
    if (e.keyCode == 13) 
     $(this).closest("form").submit(); 
}); 
</script> 

的html代碼:

<form name="form" id="second-form" action="website" method="get" target="_self">  
<input type="text" id="zipcode" placeholder="Zip Code" name="search" minlength="5" maxlength="5" size="12" pattern="\d{5}" title="A Zip Code should consist of five numbers" required /> 
<input type="submit" value="Go" id="button" class="button"> 
</form> 
+0

通常情況下,表單只在提交時才提交,如果它有焦點。你應該弄清楚你爲什麼是。顯示一些HTML。 – isherwood

+0

而不是最接近的('表格')爲什麼不使用父母('表格'),因爲輸入字段將始終是表格標籤 –

+0

@isherwood用html更新的孩子。我的表單都沒有使用自動對焦。 – user1049946

回答

0

試試這個:

$(document).on('keypress', 'input', function(e) { 
    if (e.keyCode == 13) { 
     e.preventDefault(); 
     $(this).closest("form").submit(); 
    } 
}); 

...你需要阻止事件的默認操作或各種形式提交。

另外,你爲什麼要提交second-form頁面加載這一行?

$("second-form").closest("form").submit(); 
+0

不幸的是,這種方法不起作用。我不能讓燈箱打開使用此片段。 – user1049946

+0

這種方法 - 做 - 完全按照您的要求進行。你沒有要求開放燈箱,你要求防止雙重表單提交。代碼中沒有任何關於Lightbox的內容。 – Leng