2011-12-19 14 views
-3

私はフォームで作業しており、現在の入力フィールドIDを取得するjQueryを記述する必要があります。jqueryを使用して現在のフィールドのIDを取得

実際、ユーザーがフィールドに値を入力すると、この入力フィールドのIDを自動的に取得して変数に格納するコードが必要になります。問題は、それが私が後にする情報であるため、IDを使用して選択することができないということです。

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

をしかし、これは動作しません:

私はこのような何かを試してみました。

+0

?あなたはonchangeを使うことができますが、それでもそのイベントをバインドする必要があります。私たちはあなたがどのようにhtmlを生成しているのかわからないので、その方法を言うのは難しいです。 – Matt

+1

クリック/送信コード全体を投稿できますか? – Salaros

答えて

1

最初の "Var"は、varである必要があります。

秒。変更イベントでこれを実装する必要があります

var test; 
$(document).ready(function() { 
    $(myinputfieldselector).change(function() { 
    test = this.id; 
    }); 
}) 

最後に、私はより具体的ですが、これに関連するコードを表示する必要があります。

$('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イベントハンドラでこれをラップする、またはその他のお勧めの理由を:あなたはクリックイベントハンドラでそれをラップした場合、あなたの総額は、動作するはずという、タイプミスだったと仮定すると

2

単にthis(またはjQueryバージョンthis$(this))に文脈を与えるだけで、idを取得することができます。

0

あなたのコードはどこで実行されていますか?それはフォームの提出時ですか?テキストがフィールドに入力されたら?

あなたは、フォームからのすべての入力を選択したい場合は、シンプルなthis.idが正常に動作します

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

書くことができます。

+0

お手数をおかけしていただきありがとうございますが、まだ問題があります...あなたのコードRicardoは正常に動作しますが、ページの読み込み後に追加される要素は、コードに反応していないnested_form(Ryan Bates gemを使用してフィールドを追加および削除するためのボタン付き)を持つRailsビューで使用しています。 .. – Dannoel

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)にアクセスして、:任意の入力は時にフォーカスされたときに、このリスナーは「活性化」されます。

+0

あなたの助けてくれてありがとうございますが、私はまだ問題があります...あなたのコードRicardoはうまく動作しますが、Railsビューでnested_formを使用しています(Ryan Bates gemを使用してフィールドを追加したり削除するボタン)要素がコードに反応しないときに追加される... – Dannoel

+0

jQueryは '$(document).ready()'でラップされていますか? –

0

みなさん、ありがとうございました。

私はfinalyすべてのあなたの入力のミックスで、このコードを実行する方法を見つけた:あなたのコードのwheres

$("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 
}); 
}); 
関連する問題