从表单字段中获取最高数字

时间:2013-03-09 16:17:52

标签: javascript jquery html

我在html中有一个表单,我想使用javascript从字段中提取最高的数字。例如:


<input id="temp_0__Amount" name="temp[0].Amount" type="text" value="lorum ipsum">
<input id="temp_1__Amount" name="temp[1].Amount" type="text" value="lorum ipsum">
<input id="temp_2__Amount" name="temp[2].Amount" type="text" value="lorum ipsum">

在这种情况下,我想要一个javascript来生成2。

我正在尝试使用jQuery,但我无法进一步:

$('input[name^="temp"]').last().name;

这会产生temp[2].Amount。但我只想提取2.而不是整句。而且我知道我可以使用子串这样的东西,但我想知道是否有一种“干净”的方式。

5 个答案:

答案 0 :(得分:4)

var max = Math.max.apply(Math, $('input').map(function(){
      return this.name.match(/\d+/);
}).get());

console.log(max);

http://jsfiddle.net/fmpw3/

答案 1 :(得分:0)

如果你想只提取数字2:

$('input[name^="temp"]').size()-1;

答案 2 :(得分:0)

在此处使用data- attribute: -

<input id="temp_0__Amount" name="temp[0].Amount" data-amount="0" type="text" value="lorum ipsum">
<input id="temp_1__Amount" name="temp[1].Amount" data-amount="1" type="text" value="lorum ipsum">
<input id="temp_2__Amount" name="temp[2].Amount" data-amount="2"  type="text" value="lorum ipsum">

你可以在jquery中获得价值: -

 var amount = $('input[name^="temp"]').last().data('amount');

在此处查看实时演示 Live demo link

答案 3 :(得分:0)

一点点幻想(还有一个解决方案):

var max = $('input').map(function(){
   return this.name.match(/\d+/);
}).get().sort().reverse()[0];

http://jsfiddle.net/wSmEV/

答案 4 :(得分:0)

尝试:

var lastName = $('input[name^="temp"]').find(":last").prop("name"),
    amount = lastName.replace(/^temp\[|\]\.Amount/g,'');