2010-02-25 13 views
27

Szybkie pytanie ... Zastanawiałem się, jak mogę to osiągnąć.Jak ustawić atrybut Name pola wejściowego przy użyciu Jquery?

Ok mam pole wejściowe takie jak:

<input type="text" id="input1" size="10" name="" value="" class="checked other_amount" onfocus="Toggle('radio1', 'input1');" /> 

Chciałbym, aby kliknąć na div z ID #resetPrompt i wypełnić puste nazwy attr z wejścia z „other_amount”

jestem z jego pomysłów był długi dzień

Dzięki chłopaki,

Matt

Odpowiedz

45
$('#resetPrompt').click(function(){ 
    $('#input1').attr('name', 'other_amount'); 
}); 
+1

Jak wskazano wcześniej, to won” Działają w MSIE7 i starszym. Obejście polega na przepisaniu linii wewnętrznej za pomocą .prop (..): $ ('# input1'). Attr ("name", "other_amount") || $ ('# input1') .project ("name", "other_amount"); – esteewhy

1

Jeśli „other_amount” określa identyfikator drugiego wejścia użyć attr i val następująco:

$("#resetPrompt").click(function(){ 
    var otherValue = $("#other_amount").val(); 
    $("#input1").attr("name", "someName"); 
} 
+0

Wszyscy dziękują za pracę! – TikaL13

1

Zakładając, że „other_amount” jest nazwą nie ID odpowiedniego wejścia.

$('#resetPrompt').click(function() { 
    $('#input1').attr('name', $('[name=other_amount]').val()); 
}); 
+0

Wszyscy dziękują za pracę! – TikaL13

4

To jest dla wszystkich Googlersami się tam:

Należy zauważyć, że propozycja Alexa, choć funkcjonalny w większości przeglądarek „prawdziwych”, nie działa w IE 8 i poniżej (jQuery 1.6.2). Podczas ustawiania atrybutu "nazwa" pola wprowadzania danych firma Microsoft, aby rozwiązać problem, dodała fikcyjny atrybut "submitName", gdy dynamiczne pola wejściowe są dołączone do DOM.

Aby obejść ten problem w IE, albo zmusić użytkowników do aktualizacji, należy użyć przeglądarki Firefox, Chrome itd albo trzeba dodać pole wprowadzania ręcznie:

$("#resetPrompt").click(function(){ 
    $("#input1").remove(); 
    $("#input_container").append('<input id="input1" name="' + other_amount + "' type="text" class="checked other_amount" onFocus="Toggle(\'radio1\', \'input1\');" />'); 
}); 
+0

Potwierdź: nie można ustawić atrybutu @ nazwa z $ .name (.., ..) w MSIE7 - dane wejściowe po prostu zachowują starą wartość i nic się nie dzieje. Czy jest adresowany w nowszym jQuery ver? – esteewhy

Powiązane problemy