Mam wejście HTML z linkiem w wartości.

<input type = 'text' value = 'http://www.link.com' id = 'link' />

Używam jQuery, aby zmienić wartość na określonym wydarzeniu.

$('#link').val('new value');

Powyższy kod zmienia wartość pola tekstowego, ale nie zmienia wartości w kodzie (Value = 'http://www.link.com "pozostaje niezmienione). Potrzebuję wartości = "", aby się zmienić.

105
Lukas 9 sierpień 2012, 01:50

5 odpowiedzi

Najlepsza odpowiedź

Zamiast tego użyj attr.
$('#link').attr('value', 'new value');

próbny

193
Ricardo Alvaro Lohmann 8 sierpień 2012, 21:54

Zmiana właściwości wartości nie zmienia defaultValue. W kodzie (pobrane z .html() lub innerHTML lub innerHTML) atrybut wartości będzie zawierać defaultValue, a nie wartość wartości.

13
Kevin B 8 sierpień 2012, 21:53

To tylko możliwy scenariusz, który mi się przydarzył. Cóż, jeśli pomoże komuś, świetnie: napisałem skomplikowaną aplikację, która gdzieś wzdłuż kodu użyłem funkcji, aby usunąć wszystkie wartości pola tekstowe przed pokazaniem ich. Kiedyś później próbowałem ustawić wartość textbox za pomocą jQuery Val ("Value"), ale nie zauważyłem, że zaraz po tym wywołałem metodę Clearallinputs. Tak więc również może się zdarzyć.

2
amira 19 grudzień 2016, 13:53

Moja podobna kwestia była spowodowana tym, mając znaki specjalne (np. Okresy) w selektorze.

Fix miała uciec od znaków specjalnych:

$("#dots\\.er\\.bad").val("mmmk");
0
WiredIn 1 luty 2018, 19:58
<script src="//code.jquery.com/jquery.min.js"></script>
<script>
function changes() {
$('#link').val('new value');
}
</script>
<button onclick="changes()">a</button>
<input type='text' value='http://www.link.com' id='link'>
-1
ikerya 27 luty 2014, 07:45