Javascript检查表单提交中输入的任何文本是否不起作用
我知道这是一个非常基本的JS问题,我道歉。我对这个很陌生。我一定是在什么地方出错了。以下是我的工作内容: HTML表单Javascript检查表单提交中输入的任何文本是否不起作用,javascript,Javascript,我知道这是一个非常基本的JS问题,我道歉。我对这个很陌生。我一定是在什么地方出错了。以下是我的工作内容: HTML表单 <div class='nameinput'>Please enter your name:</div> <input id='name1' placeholder='Name...' type='text'> <input type='submit' value='Connect' class="submitForm"> <
<div class='nameinput'>Please enter your name:</div>
<input id='name1' placeholder='Name...' type='text'>
<input type='submit' value='Connect' class="submitForm">
</div>
我不确定我在这里错过了什么。
name=$(“input#name1”).val()代码>工作正常,但我似乎无法让if正常工作。有人能解释一下我的问题吗 变量名称
在范围内是未定义的
。您需要在单击按钮时获取它。将代码更改为以下内容:
function init() {
$('.submitForm').on('click', function() {
var name = $("#name1").val();
if (name === '') {
alert("Please Enter Name");
}
// rest of the code
}
此外,如果只用于初始化变量name
,则不需要函数store
。此外,选择器input#name1
可以简化为#name1
,因为页面中的所有元素都应该有唯一的ID。我还是新手,在很多方面都在学习JavaScript,所以不用担心
首先,您应该尽可能多地调试问题。一种简单的方法是简单地输入testconsole.log()
语句,打印出相关的值,以便1)知道触发的内容和时间,2)它们使用的值。这会让你摆脱很多这样的问题
第二,我认为你的if语句(if(name==''){
)就是问题所在。你应该看看这个,问问自己为什么不起作用?你的逻辑比较写错了吗?你比较的是对的吗?你比较的是什么值
您的问题是:name
在哪里定义?您在store()
中使用它,但它在if
语句的init
中第一次弹出。在此之前没有定义它
所以它第一次激发时,不可能是真的,它进入else
子句,然后store()
激发
在本例中,您失去了范围的跟踪;您的变量是在哪里定义的
最简单的解决方案是添加另一条语句来提取您试图检查的输入值,并确保它不为null/空。就此而言,我认为您根本不需要store()
,除非您有特定的用途。是的,我对JS非常陌生。This console.log()非常有帮助,希望我早一点意识到。我很沮丧,一定是失去了秩序,这是有道理的。我会尝试你的建议,看看我能想出什么。非常感谢。
function init() {
$('.submitForm').on('click', function() {
var name = $("#name1").val();
if (name === '') {
alert("Please Enter Name");
}
// rest of the code
}