[英]javascript form validation not working as expected
為什么此表單驗證無效? 我這樣做是這樣的:
<form name="myForm" action="save-info.php" method="post" onsubmit="return(validu());">
我正在嘗試向表單添加驗證功能,但是即使我直接返回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()
:
刪除function validu()
周圍的$(document).ready(function () { })
function validu()
。
[旁注]
.ready()
事件並不是僅對於function
聲明真正必要的。 當您需要從document
選擇元素時,它們最有用:function handleSubmit(event) { // ... } $(document).ready(function () { $('form[name="myForm"]').submit(handleSubmit); });
將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>
.....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.