gpt4 book ai didi

javascript - 如果在 CoffeeScript 中

转载 作者:行者123 更新时间:2023-11-29 16:59:24 25 4
gpt4 key购买 nike

各位,

我的 html 中有两个文本框。我想使用 CoffeeScript 比较它们的值。虽然我已经用谷歌搜索了它,并且我有点确定我正在做预期做的事情,但我仍然看到一个奇怪的行为。

事情是:

比方说,我有两个文本框,id 分别为“标题”和“作者”。除此之外,我还有一个按钮,可通过点击触发 CoffeeScript 功能。

我的 CoffeeScript 函数如下所示:

check_fields = ->
elem_book_title = $("#title").val()
elem_book_author = $("#author").val()
alert(elem_book_title)
alert(elem_book_author)
if not elem_book_title?
alert("title is null")
else if not elem_book_author?
alert("author is null")
else
alert("both are ok")

情况是,如果我只在“标题”文本框中输入内容,它应该提醒我“作者为空”。正确的?但令人惊讶的是,它提醒我“两者都好”.. 预期?或者我错过了什么?

最佳答案

在 jQuery 中,.val() 不会为空字段返回 null(选择元素除外)。现在你的 CoffeeScript 评估为:

if (elem_book_title == null) {
return alert("title is null");
} else if (elem_book_author == null) {
return alert("author is null");
} else {
return alert("both are ok");
}

所以试着去掉问号

if not elem_book_title
alert("title is null")
else if not elem_book_author
alert("author is null")
else
alert("both are ok")

这将产生我认为您期望的 js(它正在测试是否为空字符串、0 或 null):

if (!elem_book_title) {
return alert("title is null");
} else if (!elem_book_author) {
return alert("author is null");
} else {
return alert("both are ok");
}

关于 coffeescript 的存在运算符 (?) 的工作方式有一个问题 here您可能会发现有用的信息(感谢@raina77ow)。

关于javascript - 如果在 CoffeeScript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29469998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com