JS:最后一个输入元素的名称(HTML / PHP)

时间:2015-02-10 14:59:55

标签: javascript php jquery html field

我最好列出一个清单,以便解释我想要做的步骤:

  1. 获取html输入的最后一个元素的名称(通过PHP生成)
  2. 基本设置如下:

    <input type='text'name='E_8' value= '123' />
    <input type='text'name='E_9' value= '456' />
    <input type='text'name='E_10' value= '789' />
    <input type='submit' name='submit' value='Update'/>
    
    1. 将其传递给JS函数
    2. 附加一些其他字段(使用名称的一部分作为新字段的ID
    3. JS脚本工作正常,我可以添加字段。此外,字段的内容由PHP脚本处理并写入数据库。

      简短:无论有多少字段,我如何得到最后一个值?

      编辑:我忘记了有一个提交按钮,它也会显示为最后一个元素...对不起

6 个答案:

答案 0 :(得分:1)

...的jQuery

var lastInputName = $('input[type="text"]:last').attr('name');

答案 1 :(得分:1)

有很多方法,但鉴于所有其他答案都依赖于jQuery库(这增加了不必要的开销),我将专注于展示一些简单的JavaScript方法(适用于IE8 +以上的最新浏览器)。

var allTextInputs = document.querySelectorAll('input[type="text"]'),
    lastInput = allTextInputs[allTextInputs.length - 1],
    lastInputName = lastInput.name;

var allInputsTxt = document.querySelectorAll('input[type="text"]');
var lastInput = allInputsTxt[allInputsTxt.length - 1];
var lastInputName = lastInput.name;
var lastInputValue = lastInput.value;
alert('last input name : ' + lastInputName + '; last input value : ' + lastInputValue);
<input type='text'name='E_8' value= '123' />
<input type='text'name='E_9' value= '456' />
<input type='text'name='E_10' value= '789' />
<input type='submit' name='submit' value='Update'/>

如果你想要的是而不是 name 属性,那么在使用与上面相同的方法获取最后一个名称之后,请执行此操作<input type="text"/>

var lastInputValue = lastInput.value;

这些方法将给出代码运行时文档中<input />的最后type="text"的值;要找到动态添加到文档中的最后<input />的值,您需要在该元素插入后重新运行一种工作方法。

答案 2 :(得分:0)

以下jQuery代码应该可以解决问题。

var lastValue = $("input[type=text]:last").val();

还有jQuery:

var $inputs = $("input[type=text]");
var lastValue = $inputs[$inputs.length - 1].value;

答案 3 :(得分:0)

CSS3 selectorssizzle (jquery)结合使用,以定位最后一个元素

var name = $('input[name^=E_]:last')[0].name

答案 4 :(得分:0)

PHP或JavaScript中的最后一个值? 在PHP中,字段通常作为数组传递,因此您可以使用

获取最后一个值
end($array)

如果你像这样命名你的文件,那就更好了

<input type='text'name='E[8]' value= '123' />
<input type='text'name='E[9]' value= '456' />
<input type='text'name='E[10]' value= '789' />
在JS中,您需要将字段放入数组并获取最后一个....您需要这样的东西

var myFields = document.forms["myform"].getElementsByTagName('input'),
var lastValue = myFields[(myFields.length-1)].value;

答案 5 :(得分:0)

通过将代码包装为父元素,让我们用属性id="inputs"来说,这是一个vanilla DOM(没有jQuery)解决方案:

// start by finding the last-most element
var lastInput = document.getElementById('inputs').lastElementChild;
// search backward to the last 'text' element
while (lastInput && lastInput.type !== 'text') {
    lastInput = lastInput.previousElementSibling;
}
// and get its value
var lastValue = lastInput ? lastInput.value : null;

此解决方案的有趣部分是创建无数组,因此您可以节省一些JavaScript内存。 它应该适用于Firefox,Chrome和IE 9。