如何使用 javascript 中的多个函数验证表单
How to validate form using several functions in javascript
这两个功能完美地工作,但我一次只能使用一个,表单应该检查密码和 link 用户根据所选的单选按钮转到其他页面。有什么方法可以让它发挥作用吗??
密码验证功能。
function check()
{
var password=document.getElementById('password');
var confirm=document.getElementById('confirm');
if(password==confirm)
{
return true;
}
else
{
alert('Password do not match');
return false;
}
}
功能 2:根据选择将用户定向到 2 个不同的 html 页面
function doSubmit(form)
{
var urls = form['url'];
var i = urls && urls.length;
while (i--)
{
if (urls[i].checked)
{
window.location = urls[i].value;
}
}
return false;
}
这是html代码(我只包含了与这些功能相关的部分)
<form action="" onsubmit="return check()">
<label for="password">Password</label>
<input type="password" id="password" maxlength="20" size="10" required="true" pattern=".{7,}" title="Password should be atleast 7 characters long"/>
<br /><br />
<label for="confirm">Confirm Password</label>
<input type="password" id="confirm"" maxlength="20" size="10" required="true" />
<label for="mcq">MCQ</label>
Beginner<input type="radio" name="url" value="begin" id="rdbegin" value="beginner.html"required="true"/>
<br />
Expert<input type="radio" name="url" value="expert" id="rdexpert" value="expert.html"required="true"/>
<br /><br />
<button type="submit" id="submit">Submit</button>
</form>
编辑:
试试这个来获取单选按钮值:
function doSubmit(form)
{
var urls = form['url'];
console.log(urls.value);
window.location = urls.value;
}
也可以使用 .value
获取密码值:
var password=document.getElementById('password').value;
否则以下条件将始终为假:
if(password==confirm) // because you were comparing two html nodes
这是working DEMO.
您可以在验证后简单地在第一个函数中调用第二个函数,如下所示:
function check()
{
var password=document.getElementById('password');
var confirm=document.getElementById('confirm');
if(password==confirm)
{
var form = document.getElementById('form'); //give id="form" to your form
doSubmit(form);
return true;
}
else
{
alert('Password do not match');
return false;
}
}
并且对于 onSubmit()
函数避免使用 while
循环,这会导致无限循环,因为 i--
永远为真,你可以简单地做:
var urls = form['url'];
for(var i=0; urls[i]; ++i){
if(urls[i].checked){
console.log(urls[i].value); //try printing the url and see what it gets
window.location = urls[i].value; // also change this to urls[i]
break;
}
}
这两个功能完美地工作,但我一次只能使用一个,表单应该检查密码和 link 用户根据所选的单选按钮转到其他页面。有什么方法可以让它发挥作用吗??
密码验证功能。
function check()
{
var password=document.getElementById('password');
var confirm=document.getElementById('confirm');
if(password==confirm)
{
return true;
}
else
{
alert('Password do not match');
return false;
}
}
功能 2:根据选择将用户定向到 2 个不同的 html 页面
function doSubmit(form)
{
var urls = form['url'];
var i = urls && urls.length;
while (i--)
{
if (urls[i].checked)
{
window.location = urls[i].value;
}
}
return false;
}
这是html代码(我只包含了与这些功能相关的部分)
<form action="" onsubmit="return check()">
<label for="password">Password</label>
<input type="password" id="password" maxlength="20" size="10" required="true" pattern=".{7,}" title="Password should be atleast 7 characters long"/>
<br /><br />
<label for="confirm">Confirm Password</label>
<input type="password" id="confirm"" maxlength="20" size="10" required="true" />
<label for="mcq">MCQ</label>
Beginner<input type="radio" name="url" value="begin" id="rdbegin" value="beginner.html"required="true"/>
<br />
Expert<input type="radio" name="url" value="expert" id="rdexpert" value="expert.html"required="true"/>
<br /><br />
<button type="submit" id="submit">Submit</button>
</form>
编辑:
试试这个来获取单选按钮值:
function doSubmit(form)
{
var urls = form['url'];
console.log(urls.value);
window.location = urls.value;
}
也可以使用 .value
获取密码值:
var password=document.getElementById('password').value;
否则以下条件将始终为假:
if(password==confirm) // because you were comparing two html nodes
这是working DEMO.
您可以在验证后简单地在第一个函数中调用第二个函数,如下所示:
function check()
{
var password=document.getElementById('password');
var confirm=document.getElementById('confirm');
if(password==confirm)
{
var form = document.getElementById('form'); //give id="form" to your form
doSubmit(form);
return true;
}
else
{
alert('Password do not match');
return false;
}
}
并且对于 onSubmit()
函数避免使用 while
循环,这会导致无限循环,因为 i--
永远为真,你可以简单地做:
var urls = form['url'];
for(var i=0; urls[i]; ++i){
if(urls[i].checked){
console.log(urls[i].value); //try printing the url and see what it gets
window.location = urls[i].value; // also change this to urls[i]
break;
}
}