2016-05-18 79 views
-2

我有页面重新加载的问题。以各种形式提交网页重新提交

HTML

<form onsubmit="return commentForm()"> 
    <input type="text" id="text"> 
    <input type="checkbox" id="check" name="check"> 
    <input type="submit" value="Comment" class="txt2"> 
</form> 
<p id="demo"></p> 

的Javascript

function commentForm() { 
    var x = document.getElementById('check').checked; 
    var y = document.getElementById('text').value; 
    if (y == null || y == "") { 
      alert('please enter some value'); 
      return false; 
    } 
    if (x == false) { 
      alert('Please check the checkbox') 
      return false; 
    } 
    else { 
      document.getElementById('demo').innerHTML += document.getELementById('text').value + "<br>"; 
      return true; 
    } 
} 

我的问题是,当我提出它,而不是重装复制文本的网页。
请帮助我。

+0

我可以让我的病毒染成蓝色吗?请阅读[如何创建一个最小,完整和可验证的示例](http://stackoverflow.com/help/mcve) – 4castle

+0

对不起。我是堆栈溢出新手。真对不起。请帮我解决这个问题 – Advaith

回答

0

function commentForm() { 
 
    var checkbox = document.getElementById('check').checked; 
 
    var text = document.getElementById('text').value; 
 
    if (!text) { 
 
     alert('please enter some value'); 
 
     return false; 
 
    } 
 
    if (!checkbox) { 
 
     alert('Please check the checkbox'); 
 
     return false; 
 
    } 
 
    else { 
 
     document.getElementById('demo').innerHTML += text + "<br>"; 
 
     return false; 
 
    } 
 
}
<form onsubmit="return commentForm()"> 
 
    <input type="text" id="text"> 
 
    <input type="checkbox" id="check" name="check"> 
 
    <input type="submit" value="Comment" class="txt2"> 
 
</form> 
 
<p id="demo"></p>

如果你想在页面不被重定向可以在else语句中使用return false

+0

我建议使用描述性变量名称。你也可以说'innerHTML + = y',而不是再次获取元素,因为你将它赋给了变量'var y',这是描述变量命名会派上用场的地方。 – jdgregson

+0

@jdgregson我刚刚复制了所有者的代码,以帮助他解决问题。我知道。你可以向Advaith解释。 – Conor

2

试试这个。我将提交输入中的按钮更改为按钮输入,以便它只运行脚本。您不希望表单提交,这需要重新加载页面以将表单“提交”给服务器。你也需要从文本输入得到value

document.getElementById('demo').innerHTML += document.getElementById('text').value + "<br>

但既然你已经把那个价值为var text你可以重用该变量。此外,您不检查复选框是否被选中,因为它正在查看两个输入的变量x。尝试运行此:

function commentForm() { 
 
    var checkBox = document.getElementById('check').checked; 
 
    var text = document.getElementById('text').value; 
 
    if (!text) { 
 
     alert('please enter some value'); 
 
     return false; 
 
    } 
 
    if (!checkBox) { 
 
     alert('Please check the checkbox') 
 
     return false; 
 
    } else { 
 
     document.getElementById('demo').innerHTML += text + "<br>"; 
 
     return true; 
 
    } 
 
}
<form> 
 
    <input type="text" id="text"> 
 
    <input type="checkbox" id="check" name="check"> 
 
    <input type="button" value="Comment" class="txt2" onclick="return commentForm()"> 
 
</form> 
 
<p id="demo"></p>

+0

感谢兄弟。但是这里写的代码是错误的。我在原来的网页上正确写下了它。从

更改为将使用返回false或true? – Advaith

+0

你对返回码有什么意义? 'commentForm()'函数在将文本附加到'demo'时返回'true',但在窗体上单击按钮后没有任何内容使用该返回代码。 – jdgregson

+0

这只是我原始代码的简短形式。在我原来的我需要使用'return',因为它在代码中很大。 – Advaith