Javascript通过函数设置文本框的值,而不会重置
Javascript setting value of textbox by function, without getting reset
我的目标是有一个文本框和一个按钮。如果我在文本框中输入"Hello"并按下提交按钮,我希望看到文本框中填满"World.
"。目前文本框的值将在
<html>
<body>
<script>
function validateForm() {
var x = document.forms["myForm"]["Input"].value;
if (x == "Hello") {
alert("test");
document.getElementById("Input").value = "World";
alert("test2");
}
}
</script>
<form name="myForm" action="test.html" onsubmit="return validateForm()" method="post">
Input: <input type="text" id="Input"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
问题是表单在验证之后被提交。因此,您再次被重定向到test.html
。
如果你不希望发生这种情况,添加event.preventDefault();
到您的事件处理程序(检查小提琴看到它的工作):
<html>
<body>
<script>
function validateForm(event) {
event.preventDefault();
var x = document.forms["myForm"]["Input"].value;
if (x == "Hello") {
alert("test");
document.getElementById("Input").value = "World";
alert("test2");
}
}
</script>
<form name="myForm" action="test.html" onsubmit="return validateForm(event)" method="post">
Input: <input type="text" id="Input"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
您可以在MDN了解更多关于event.preventDefault()
的信息。
只是作为旁注:通常最好使用addEventListener
而不是onsubmit
属性(更好地分离关注点,您可以添加多个事件侦听器等)。
当你提交你的页面时,动作页面中的内容将被加载。
在您的示例中,将加载test.html。如果你想在点击提交时在文本框中显示值"World",那么在validateForm()方法中返回false
使用return false;
保持在同一页面并停止表单提交
function validateForm() {
var x = document.forms["myForm"]["Input"].value;
if (x == "Hello") {
document.getElementById("Input").value = "World";
return false;
}
}
相关文章:
- JavaScript:在调用函数的文本输入上按enter键
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 设置javascript函数中文本框的值
- 使用jQuery重置文本,同时存在AJAX调用
- 如何在 JavaScript 中获取函数体文本
- mootools类型的函数将文本作为函数执行
- 在key up函数上将文本框值传递给javascript
- 使用评估函数调用 javascript 函数作为文本框 Asp.net 参数
- 为什么我的html弹出窗口显示我的函数的文本,而不是运行它们
- 我可以重置文本输入而不清除它吗
- Ng模型在AngularJS中重置文本区域后未更新
- 在 JavaScript 中重置文本区域高度
- 阻止按钮重置文本框值
- Javascript/jQuery Load 函数,文本选择
- 阻止重置文本区域
- 使用传递给函数的文本来调用 JavaScript 函数
- 如何使用jQuery的prop函数获取文本框的值
- Javascript onClick函数-将文本复制到输入值
- 如何使用JavaScript函数检查文本框的两个值
- Javascript通过函数设置文本框的值,而不会重置