簡體   English   中英

onClick()執行功能?

[英]onClick() to perform function?

是否可以使用用戶名和密碼的形式通過onClick()執行JS驗證? 這是代碼:

<form action="signup.php" method="post" name="formInput" onclick="validateForm()">
    Username: <br> <input type="text" name="username" placeholder="Username"><br>
    Password  <br> <input type="password" name="pass" placeholder="Password"><br>
    <input type="submit" name="submit">
</form>

我記得以前做過,但不記得在表單創建或按鈕提交中在哪里調用實際的onClick()?

謝謝你的任何建議。

<script>
function validateForm() {
   // if valid return true else false
}
</script>

<form action="signup.php" method="post" name="formInput" onsubmit="return validateForm()">
    Username: <br> <input type="text" name="username" placeholder="Username"><br>
    Password  <br> <input type="password" name="pass" placeholder="Password"><br>
    <input type="submit" name="submit">
</form>

單擊提交按鈕后, signup.php將立即執行,您的validateForm()被忽略。 我不知道為什么您要嘗試使用JavaScript而不是signup.php本身來驗證數據。 此外,幾乎肯定可以在前端進行驗證是一個巨大的安全漏洞。

我建議您做的是忘記在JavaScript中進行驗證,而在PHP中進行驗證。 如果您發布validateForm()代碼,我們可以幫助您將其轉換為PHP(也可能會對其進行改進)。

編輯:您已聲明您的驗證是確保輸入字段不為空。 所以我們走了:

<?php
session_start();

$username = $_POST['username'];
$pass = $_POST['pass'];

if (strlen($username) < 1 || strlen($pass) < 1) {
    header(...); //redirect back to the home-page
    $_SESSION['message'] = "Username and password must be filled out.";
}
... //rest of your signup.php
?>

並將HTML頁面的擴展名更改為.php,然后將其添加到頂部:

<?php
session_start();

echo("<script> alert('" . $_SESSION['message'] . "'); </script>");
?>

對於這樣一個簡單的任務,這似乎有點過頭了,也許是。 但是,您將需要檢查除字段為空以外的其他內容,並且必須以這種方式完成。

但是,如果您不在乎並且想要一種簡單的方法,則可以使用JavaScript禁用提交按鈕,直到兩個字段都填滿為止。 檢查兩個字段是否都填充了onChange = validateForm()函數之類的內容。

解:

<form action="signup.php" method="post" name="formInput" onsubmit="return validateForm()"> Username: <br> <input type="text" name="username" placeholder="Username"><br> Password <br> <input type="password" name="pass" placeholder="Password"><br> <input type="submit" name="submit" onsubmit="validateForm()"> </form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM