2017-03-09 49 views
0

我想寫一個非常簡單的jQuery函數,它將有兩個主要屬性。第一個是檢查字段是否爲空。第二個將是如果該字段不是空的執行一個將導致PHP編碼頁面的表單。我對jQuery非常陌生,如果有人能指出我的錯誤,我將非常感激。先謝謝你。如果聲明爲真,請提交表格

function Captcha() { 
 
    $('#Button').click(function() { 
 
    if ($("#Field").val().length == 0) { 
 
     alert("Please fill the box"); 
 
     return false; 
 
    } else { 
 
     alert("Your code is saved"); 
 
     return true; 
 
    } 
 
    }); 
 
} 
 

 
$(document).ready(function() { 
 
    Captcha(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action="success.php" id="Alpha" method="post" onsubmit="return Captcha();"> 
 
    <input id="Field" type="text" placeholder="Enter key here"> 
 
    <button id="Button" type="submit" form="Alpha">Confirm</button> 
 
</form>

+0

什麼地方錯了,你貼什麼?檢查你的控制檯和html源代碼?錯誤報告? –

+0

不要使用按鈕的'click'事件,使用表單的'submit'事件。 –

+0

@ Fred-ii-問題在於,即使填充字段並返回true語句,它也不想將我重定向到'success.php'。 –

回答

2

不要使用按鈕的click事件,使用表單的submit事件,因爲表單可以通過鍵盤提交,因此可以繞過按鈕。

你可以看到一個工作版本here(堆棧溢出防止在下面的代碼片段環境中工作提交代碼。)

$(function() { 
 
    $('#Alpha').on("submit", function() { 
 
    if ($("#Field").val().length == 0) { 
 
     alert("Please fill the box"); 
 
     return false; 
 
    } else { 
 
     alert("Your code is saved"); 
 
     return true; 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action="success.php" id="Alpha" method="post" onsubmit="return Captcha();"> 
 
    <input id="Field" type="text" placeholder="Enter key here"> 
 
    <button id="Button" type="submit" form="Alpha">Confirm</button> 
 
</form>

+0

是的,這是有效的。非常感謝您的幫助和關於使用表單提交而不是按鈕的建議。我欠你一個大個子! –

2

您想驗證表單字段當你真正提交表單。當你點擊按鈕時,你仍然在觸發提交過程。

嘗試修改此:

$('#Button').click(function() { 

進入這個:

$('#Alpha').on('submit', function() { 

看看是否有幫助。

+0

我看到了我的錯誤,非常感謝你指出。 –