Javascript检查表单提交中输入的任何文本是否不起作用

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"> <

我知道这是一个非常基本的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>


我不确定我在这里错过了什么。
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,所以不用担心

首先,您应该尽可能多地调试问题。一种简单的方法是简单地输入test
console.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
}