使用jquery获取当前字段的id

时间:2011-12-19 21:02:26

标签: jquery forms

我正在处理一个表单,我需要编写一些jQuery来获取当前的输入字段id。

实际上,当用户在字段中输入值时,我需要代码自动获取此输入字段的id并将其存储在变量中。问题是我无法使用id来选择它,因为这是我所追求的信息。

我尝试过这样的事情:

Var test = $(this).attr('id');

但这不起作用。

6 个答案:

答案 0 :(得分:3)

简单的this.id可以正常使用。

答案 1 :(得分:2)

假设您的大小写是一个拼写错误,那么如果您将其包装在click事件处理程序中,它应该可以正常工作:

$('input').click(
    function(){
        var test = $(this).attr('id');
        /* or, preferably to my mind, in plain JavaScript:
        var test = this.id;
        */
        console.log(test); // show the variable in the JavaScript console
        alert(test); // alerts the variable
    });

我建议将此包装在click事件处理程序或其他任何内容中的原因只是为this(或this的jQuery版本提供上下文。 :$(this)),可以从中检索id

答案 2 :(得分:1)

首先“Var”应为var

二。您应该在更改事件

上实现此功能
var test;
$(document).ready(function() {
  $(myinputfieldselector).change(function() {
    test = this.id;
  });
})

最后。我会更具体,但您需要显示相关的代码。

答案 3 :(得分:0)

您的代码在哪里执行?是否提交表格?当文本输入字段?

如果要从表单中选择所有输入,可以编写

inputElements = $("#idOfFormElement").find("input");

答案 4 :(得分:0)

一个简单的解决方案是在您希望具有此行为的输入上放置一个类。这是一个例子:

<div id="choose-record-number">
    <input type="text" class="ip" id="number-records" value="50" />
    <input type="text" class="ip" id="record-type" />
    <input type="submit" class="ip" id="view-records" value="Visualizar" />
</div>
<div id="show"></div>

接下来,在jQuery中,只需向插入的类添加一个侦听器即可。当关注任何输入时,该监听器将被“激活”:

$(".ip").focus(
function() {
    $("#show").html($(this).attr('id'));
});

在函数内部,访问$(this)将获得当前选择的输入。

答案 5 :(得分:0)

大家好,非常感谢你的帮助。

我终于找到了处理所有输入的代码的方法:

$("form").live("nested:fieldAdded", function() { //to listen to the new added line event
$('.ip').blur( //launching the function when the user enters something in the input field 
function(){
var test = this.id; //Get the id of the current field
var pattern = /[0-9]+/; //Only conserve the numeric part of it
var  intRegex = test.match(pattern);
var string = ('pinvoice_pinvlines_attributes_new_'+ intRegex +'_montant_HTVA'); //Build the string id
var a = document.getElementById(test).value //Get the value of the inputed field by the user
document.getElementById(string).value = a; //Finaly copy the value of the field in a new one using his specific id build with the STRING variable
});
});