【问题标题】:.val() or .text() to find value of input in form?.val() 或 .text() 在表单中查找输入值?
【发布时间】:2014-03-19 14:16:22
【问题描述】:

知道从表单输入字段中获取值的最佳做法是什么(即在标签中的第二个)?

我已经能够很好地获得其余的值(SKU 和价格),但数量很棘手。

JSFIDDLE 到整个事情: http://jsfiddle.net/hslincoln/7HXBQ/33/

这是一些 jQuery,它限定了表的第一个 tr,然后尝试进入该行并提取数量值:

var BSKfirstQTY = $(BSKfirstrow).find('td.quantity').text('input value');

但正如您从小提琴的结果窗格中看到的那样,它正在喷出[object Object]。

注意:将 .text() 留空会导致它在小提琴结果窗格中拾取单词 Qty(这是标签,而不是数字)。

任何帮助将不胜感激:)

【问题讨论】:

  • 我有时更喜欢 jQuery/native 混合:$(BSKfirstrow).find('td.quantity')[0].value
  • 这是因为您尝试在 td 上使用 .val() 而不是输入。而不是做 .find('quantity').val() 只是做 .find('quantity input').val()

标签: javascript jquery html forms input


【解决方案1】:

如果您将参数传递给text(),则将td.quantity 的内容设置为该字符串,JQuery 将返回chaining 的对象。如果你不带参数调用text(),你会得到元素内的文本。

您应该使用.val() 来检索 input/textarea/selects 元素的值,如下所示:

var BSKfirstQTY = $(BSKfirstrow).find('td.quantity input').val();

有关 val 与 text 的更多信息,请参阅this question。

【讨论】:

  • 打我一拳!!! :) 我可能会使用 td.quantity > input,但这只是我。
  • 好点。对于其他人的参考,td input 将选择任何input 是td 的后代,其中td > input 将只选择inputs 是td 的直接子代。
  • 我是如此接近!谢谢@ZachRattner,帮了大忙。
【解决方案2】:

查看Difference between val() and text() 他说 .text() 不适用于输入元素。

.val()

http://api.jquery.com/val/

.text()

http://api.jquery.com/text/

我认为没有真正的“最佳实践”方案,因为它们都做不同的事情。看起来是一样的,但是如果您正在使用一个您真的想使用.val() 的表单。否则.text() 可能就足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 2012-07-30
    • 1970-01-01
    • 2015-07-27
    • 2015-12-17
    相关资源
    最近更新 更多