2012-03-16 66 views
0

我想显示通过输入收集的数据的结果。这是我所做的,但是在完成填充字段之后并且函数返回true后,它不起作用。表单验证后的新HTML页面

<form name ="reg" action ="" onsubmit ="return checkValidation(this)">//CODE... 

下面是被调用的函数:

function checkValidation() 
    { 
    var valid = isValidName(); 
     if(valid) 
     valid = isValidEmail(); 
     if(valid) 
     valid = isValidPass(); 
     if(valid) 
     valid = isValidRadio(); 
     if(valid) 
     { 
     document.write(document.reg.name.value); 
     } 
     return valid; 
    } 

请告诉我这个问题?我如何使用这些数据打开一个新页面? 谢谢!

+0

也许忘了提交? :) – Panagiotis 2012-03-16 19:01:40

+0

@Panagiotis我提交了表格,显然我不会除了要执行的新html,如果我没有做任何事情 – idish 2012-03-16 19:04:29

+1

@Panagiotis他在调用onsubmit,@idish你需要返回false如果它是真的将刷新页面并且不会打印任何内容 – 2012-03-16 19:05:28

回答

1

使用此对您调用的函数:

function checkValidation() 
{ 
var valid = isValidName(); 
    if(valid) 
    valid = isValidEmail(); 
    if(valid) 
    valid = isValidPass(); 
    if(valid) 
    valid = isValidRadio(); 
    if(valid) 
    { 
    document.write(document.reg.name.value); 
    return false; 
    } 
    return valid; 
} 

你实际上是用回假做什么;因为onSubmit()事件需要返回true才能继续实际提交到action =“”中定义的页面(在您的情况中为none,这会导致白页),因此将取消提交事件。

还要考虑到在返回false(这些过程发生在浏览器中)的时候,您已经处理了前端变量(或显示它们)。如果你希望实际的数据被发送到服务器(并且在不重新加载的情况下在同一页面上),你应该使用ajax调用你的服务器端脚本。

+0

非常感谢您的帮助,顺便说一下,如果在返回false之前创建另一个document.write(...),则此代码不起作用;如果你能解释我为什么会这么好,无论如何我接受你的答案,再次感谢! – idish 2012-03-16 19:37:13

+0

你确定吗?把一个document.write(“\ n”+ document.reg.name.value);在返回错误之前查看它是否正常工作。 – Panagiotis 2012-03-16 19:43:30

0
function checkValidation() 
{ 
var valid = isValidName(); 
    if(valid) 
    valid = isValidEmail(); 
    if(valid) 
    valid = isValidPass(); 
    if(valid) 
    valid = isValidRadio(); 
    if(valid) 
    { 
    document.write(document.reg.name.value); 
    } 
    // here if valid is true then page will reload itself and 
    // document.write(document.reg.name.value); will not show any result 

    return valid; 
} 
+0

我现在明白了这个问题,那么我应该在哪里放这个代码呢? – idish 2012-03-16 19:11:57

+0

您是否需要打印仅在出现错误或总是出现 – 2012-03-16 19:14:41