Estoy haciendo un formulario en el que tengo una lista de elementos y cada uno tiene su input text con un número. Este número es el orden en el que los elementos se deben listar. Lo que quiero es que al cambiar un text su valor anterior pase al que tiene el valor nuevo.
Ejemplo: dados los elementos uno dos y tres en ese orden con sus respectivos números y al que dice "1" le pongo un "3", el que anteriormente tenía un "3" cambia a "1".
Ya casi está, de hecho anda, pero tengo el problema de que esto funciona una sola vez.
Necesito cambiar dinamicamente el valor de "onblur" para que el valor de "original_value" cambie acorde al nuevo valor del input.
Está en el código el "intento" de cambiar el valor en el attr "onblur" pero al parecer los eventos no se pueden cambiar con el mismo método que los atributos.
Les dejo los códigos.
HTML:
Código:
JS de jQuery:<input name="slider_elements[1]" id="slider_elements_1" type="text" value="1" onblur="setOrder(this.value, 1, this.id);" /> <input name="slider_elements[2]" id="slider_elements_2" type="text" value="2" onblur="setOrder(this.value, 2, this.id);" /> <input name="slider_elements[3]" id="slider_elements_3" type="text" value="3" onblur="setOrder(this.value, 3, this.id);" />
Código:
Gracias. function setOrder(new_value, original_value, id) { if(is_int(new_value)) { $('[value="'+new_value+'"][id!="'+id+'"]').val(original_value); $('#'+id).attr('onblur', 'setOrder(this.value, '+new_value+', this.id);'); } else {} }