【问题标题】:HTML5 localStorage sets to "NaN"(jQuery)HTML5 localStorage 设置为“NaN”(jQuery)
【发布时间】:2013-05-21 11:14:34
【问题描述】:

我有一个文本字段,用户要插入一个 URL,然后下面的代码应该运行并将 URL 存储在“电子邮件”中,但不是存储 URL,而是存储“NAN”...

    if ($("input[name='email']").val().length == 0 ){
    alert("You Need To Set A Email URL");
}
else{
    localStorage.setItem("email", +("input[name='email']").val);
}

为什么?我的 jQuery 有什么问题?

【问题讨论】:

  • + 用作一元运算符时是 parseInt(_, 10) 的快捷方式
  • "为什么?我的 jQuery 出了什么问题?"问问你的控制台。经常像说话一样安慰。
  • @Kolink 它更像是一个数字解析器,它将字符串解析为数字(浮点数/整数),而不仅仅是像 parseInt() 那样的整数
  • 啊,是的。所以更像parseFloat

标签: jquery html local-storage


【解决方案1】:

几件事。

+("input[name='email']").val
^-- Should be $
--------------------------^ .val()

.val()是一个方法,你需要调用它。
$jQuery的正确别名

【讨论】:

    【解决方案2】:

    尝试亲子关系

    if ($("input[name='email']").val().length == 0 ){
        alert("You Need To Set A Email URL");
    }
    else{
        localStorage.setItem("email", +("input[name='email']").val());
    }
    

    【讨论】:

    • Ops,我无法回复,当我打字的时候已经有答案了:(对不起
    【解决方案3】:

    你正在这样做

    localStorage.setItem("email", +("input[name='email']").val);
    

    这里有几个问题

    • 您正在正确检索输入值。 val 在这种情况下什么都不是。
    • 在这种情况下不应使用+ 运算符。

    所以试试这个

    else{
         localStorage.setItem("email", $("input[name='email']").val());
    }
    

    JS Fiddle Example

    【讨论】:

      猜你喜欢
      • 2011-04-19
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 2018-07-22
      相关资源
      最近更新 更多