好吧,所以我正在进行表单验证这个JS中的一切都很好,但是现在我在输出中遇到问题,我正在尝试显示所有选择的数据。所以我使用了action属性并调用了以下函数:
function funcs()
{
var favor = document.reg.favor[selectedIndex].value; //Select input
var fname = document.reg.fname.value; // text input
var lname = document.reg.lname.value; // text input
var email = document.reg.email.value; // text input
var pass = document.password.value; //text input
for(i=0;i<document.reg.rad.length;i++)
{
if(document.reg.rad[i].checked == true)
{
var rad = document.reg.rad[i].value; // Radio input
}
}
if(document.reg.bike.checked == true)
{
var bike = document.reg.bike.value; //CheckBox input
}
if(document.reg.car.checked == true)
{
var car = document.reg.car.value; //CheckBox input
}
document.write('<head><link type="text/css" rel="stylesheet" href="registrationtable.css"/></head><body>');
document.write("<div class = 'team'>");
document.write('<table>');
document.write("<tr><td> שם פרטי: </td><td>" + fname + "</td></tr> <tr><td> שם משפחה: " + lname + "</td></tr> <tr><td> אימייל: " + email + "</td></tr> <tr><td> סיסמא: " +pass +"</td></tr>");
document.write("<tr><td> השחקן האהוב עליך הוא " + favor +"</td></tr>");
document.write("</table>");
document.write("</div></body>");
}
这是表格标题:
<form name ="reg" action ="Javascript:funcs()" onsubmit ="return checkValidation()">
我想清楚所有其他javascript代码都运行正常,它必须是具有此功能的东西。 当我按下发送按钮时,它不会做任何事情。谁知道这个问题是什么? 谢谢你提前。
答案 0 :(得分:4)
你 can't 不应该在你的action
属性中有一个javascript函数,它必须是一个URI。如果验证成功,您可以调用funcs
onsubmit
。
由于Aquinas已经证明在action属性中调用javascript函数实际上是可行的,因此建议您不要将js代码放在action属性中。
答案 1 :(得分:2)
我怀疑。一个问题是这一行:
var favor = document.reg.favor[selectedIndex].value;
应该是
var favor = document.reg.favor[document.reg.favor.selectedIndex].value;
你的第二个问题是:
var pass = document.password.value;
应该是:
var pass = document.reg.password.value;
请参阅更新的小提琴:http://jsfiddle.net/x7SBy/1/
最后,您应该使用Firefox并下载Firebug。它对于调试这样的JS问题非常宝贵。
编辑:你的JS还有其他问题,我不会详细介绍,但一般来说你不想使用document.reg.password,因为这样的问题。你应该使用document.getElementById。仅供参考。
答案 2 :(得分:0)
看起来您正在尝试验证表单,然后如果有效则调用funcs
函数来更改页面上的HTML。
也许是这样的:
<form name="reg" action="" onsubmit="checkValidation()">
然后使用checkValidation
函数暂停表单提交,如果有效,请调用funcs
函数:
function checkValidation(e) {
e.preventDefault();
if (checkValidation()) {
funcs();
}
}
但如果是这种情况,则funcs
函数不应编写<head>
标记等。也许您只需将HTML添加到正文中,而不是尝试使用javascript将新的HTML文档放入DOM中。
替代解决方案:
function checkValidation() {
... do your validation
return true; // or false if invalid
}
然后在form
的操作标记中使用真实的HTML网页/资源。