簡體   English   中英

javascript表單驗證無法正常工作

[英]javascript form validation not working as expected

為什么此表單驗證無效? 我這樣做是這樣的:

<form name="myForm" action="save-info.php" method="post" onsubmit="return(validu());">

http://jsfiddle.net/QrYmh/41/

我正在嘗試向表單添加驗證功能,但是即使我直接返回false也不起作用。 表格仍在提交什么地方錯了?

我需要為輸入添加一些驗證邏輯。 但是我似乎做不到。 js調試器(firefox)表示ReferenceError:validu未定義

請幫忙

由於您已經在使用jQuery,因此不妨使用可用的commit submit()方法

檢查這個小提琴

$(document).ready(function () {
    $('form').submit(function (e) {
        e.preventDefault();
        alert('vdsdsfsdf');
        //validate and submit.
    });
}

為了能夠從on*屬性中引用function ,必須在全局范圍內對其進行定義。

使用當前在另一個function內部聲明的validu()onsubmit屬性根本無法到達它。

全局使validu()

  1. 刪除function validu()周圍的$(document).ready(function () { }) function validu()

    [旁注] .ready()事件並不是僅對於function聲明真正必要的。 當您需要從document選擇元素時,它們最有用:

     function handleSubmit(event) { // ... } $(document).ready(function () { $('form[name="myForm"]').submit(handleSubmit); }); 
  2. 將JSFiddle選項從onLoad更改為以下之一: onLoad將代碼包裝在另一個function中:

    • No wrap - in <head>
    • No wrap - in <body>

或者,如karthikr建議的那樣,您也可以使用不引人注目的JavaScript而不是onsubmit屬性,以便事件綁定和function可以在同一范圍內。

$(document).ready(function () {
    function validu() {
        alert('vdsdsfsdf');
        return false;
    }

    $('form[name="myForm"]').submit(validu); // <----
});

修訂小提琴

函數validu()必須可由HTML代碼訪問。 在這種情況下,只能在jquery ready函數中訪問它。

不幸的是,不可能將其簡單地放置在jsfiddle中的ready函數之外以使其工作,因為jsfiddle本身將js代碼放置在窗口加載函數中。 所以你必須這樣寫

<script>function validu()
{
    alert('vdsdsfsdf');
    return false;
}</script>
<form name="myForm" action="save-info.php" method="post" onsubmit="return(validu());">

<div class="container" style="width:700px; margin:0 auto;"> 
<fieldset>
.....

http://jsfiddle.net/QrYmh/52/

暫無
暫無

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

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