HTML文本输入条件提交
HTML text input conditional submit
我有一个页面,每次刷新时加载一个随机的MP3文件。用户必须通过文本表单输入根据声音猜测一个名字。我想根据存储的字符串检查他们的输入并刷新页面,如果它是正确的。否则,我不想给他们一个错误的警告,并停留在同一页面,以便他们可以再次猜测:
<div class="ui-widget" align="center">
<form method="post" action="" class="answerswer_box" onsubmit="return submit();">
<p>Which hero is it? <input id="tags" name="guess" /></p>
<script>
var key = <?php echo json_encode($rand_key) ?>;
var info = document.getElementById("guess").value;
function submit() {
if (key==info){
alert('Correct!');
return true;
}
else {
alert('Incorrect!');
returnToPreviousPage();
return false;
}
}
</script>
</form>
</div>
现在,不管输入是什么,它都将信息提交到一个新的页面。javascript警报也没有显示(我怀疑它们确实显示了,但页面随后刷新,它们消失了)。key变量是PHP数组中随机取值的键,info应该是用户输入的文本。
发现问题:
- 你不能使用
submit
作为函数名这是一个HtmlForm对象 -
document.getElementById("guess").value;
正在查找ID为"guess"且不存在的元素。
我将重写你的脚本如下:
<script>
var key = <?php echo json_encode($rand_key) ?>;
function my_submit(curr) {
var info = curr.guess.value;
if (key == info) {
alert('Correct!');
return true;
}
else {
alert('Incorrect!');
returnToPreviousPage();
return false;
}
}
</script>
<form onsubmit="return my_submit(this);">
<p>Which hero is it? <input id="tags" name="guess"/></p>
</form>
这里有问题:
<input id="tags" name="guess" />
你的id
是tags
,不是guess
。
你应该使用document.getElementById("tags").value
您正在尝试检索id为"guess "的元素的值。将其更改为"tags"。"
var info = document.getElementById("tags").value;
另外,正如@CodeGodie提到的,您需要将函数名更改为submit以外的名称。
相关文章:
- 无法在有条件呈现的富:面板上提交h:form
- jQuery Ajax成功提交条件问题
- 将JavaScript函数分配给提交按钮,该按钮应有条件执行
- 如何将多个条件添加到表单提交或文本框输入中
- 提交表格前检查条款和条件
- 使用jQuery提交表单时的竞争条件
- 检查要用作条件的表单值,而无需提交表单
- 获取提交按钮的值,以作为 JavaScript 中警报消息的条件
- 为什么提交带有 if 条件的表单为假
- 根据条件在 JQuery 表单插件中提交回调之前删除项目
- jQuery UI 可丢弃的接受条件与表单提交
- 根据无线电输入条件禁用和启用按钮提交
- 如果条件失败,则正在提交表单
- 如何在成功提交后关闭模态框,并在表单提交时有条件地打开第二个模态
- 如果条件成立,请提交表格
- 如果文本字段中未输入任何数据,如何有条件地阻止表单提交
- JS条件清除值on点击提交按钮
- 如何在以编程方式在 JavaScript 中提交表单之前检查条件
- preventDefault在使用CoffeeScript with Rails4提交时未处理else条件
- 如果javascript中的条件为false,请避免在单击按钮时提交页面