konto usunięte

Temat: Text input - zbiorowa modyfikacja

Obecnie tworzę programik do masowej zmiany kwot produktów.
Moim problemem jest masowa zmiana wartości text input'ów.
Mam taką tabelkę:

<table id="selective" class="table">
<tr>
<td>Kod</td>
<td>Nazwa</td>
<td>Cena</td>
</tr>
<tr>
<td>kod1</td>
<td>nazwa1</td>
<td><input type="text" name="kod1" value="10,51" />zł</td>
</tr>
<tr>
<td>kod2</td>
<td>nazwa2</td>
<td><input type="text" name="kod2" value="20" />zł</td>
</tr>
</table>


Potrzebuję za pomocą jQuery dodać do wszystkich text input'ów (z ceną produktów) 5 zł.


$(document).ready(function(){
//pętla
this.val(this.val()+5);
//koniec pętli
});


No i teraz pytanie jak skonstruować pętlę? Przy założeniu, że dobrze kod napisałem.

konto usunięte

Temat: Text input - zbiorowa modyfikacja

Chodzi Ci o each: http://api.jquery.com/each/ ??

konto usunięte

Temat: Text input - zbiorowa modyfikacja

Piotr Lewandowski:
Chodzi Ci o each: http://api.jquery.com/each/ ??
Właśnie o to mi chodziło, dzięki :)

konto usunięte

Temat: Text input - zbiorowa modyfikacja

Albo robię coś nie tak, albo nie wiem co się dzieje...
Obecnie kod wygląda tak:


$(document).ready(function(){
$('#next').click(function(){
$('.editPrice').each(function(){
var price = this.val() + (procent.val()/100);
this.val(price);
});
});
});

Marża: <input type="text" id="procent" /> %
<br />
<table id="selective" class="table">
<tr>
<td>Kod</td>
<td>Nazwa</td>
<td>Cena</td>
</tr>
<tr>
<td>kod1</td>
<td>nazwa1</td>
<td><input type="text" name="kod1" class="editPrice" value="10,51" />zł</td>
</tr>
<tr>
<td>kod2</td>
<td>nazwa2</td>
<td><input type="text" name="kod2" class="editPrice" value="20" />zł</td>
</tr>
</table>
<input type="button" id="next" value="Dalej..." />


W momencie gdy klikam na button id="next" nic się nie dzieje...Janusz Pyzio edytował(a) ten post dnia 23.07.10 o godzinie 17:19
Bartek Stańkowski

Bartek Stańkowski front-end & mobile
web developer

Temat: Text input - zbiorowa modyfikacja

A błędów w Firebugu nie widać?
Nie ma this.val(), jest this.value albo $(this).val() ;)

konto usunięte

Temat: Text input - zbiorowa modyfikacja

Faktycznie kilka błędów pojawiło się (przyzwyczajenie do nieco innych języków), a swoją drogą sprawdzałem w chromie bez FireBug'a ;)

konto usunięte

Temat: Text input - zbiorowa modyfikacja

Mimo poprawienia błędów i kilku zmian kod dalej nie działa :/


<script>
$(document).ready(function(){
$('#next').click(function(){
if($('markupConstant').val() > 0){
$('.editPrice').each(function(){
var price = $(this).val() + ($('markupConstant').val()/100);
$(this).val(price);
});
}
});
});
</script>

Stała marża: <input type="text" id="markupConstant" value="0" size="4" />%

<input type="button" id="next" value="Dalej..." />

<table>
<tr>
<td>Kod</td>
<td>Grupa</td>
<td>Nazwa</td>
<td>Ilość</td>
<td>Cena</td>
</tr>
<tr>
<td>xxx</td>
<td>yyy</td>
<td>zzz</td>
<td>10</td>
<td><input type="text" class="editPrice" name="xxx" value="49.00" />zł</td>
</tr>
<tr>
<td>xxx</td>
<td>yyy</td>
<td>zzz</td>
<td>5</td>
<td><input type="text" class="editPrice" name="xxx" value="10.00" />zł</td>
</tr>
</table>
</form>

Bartek Stańkowski

Bartek Stańkowski front-end & mobile
web developer

Temat: Text input - zbiorowa modyfikacja

Janusz P.:
Mimo poprawienia błędów i kilku zmian kod dalej nie działa :/
(…)

Eh, $('#markupConstant'), nie $('markupConstant').

Zamiast input type="button" prościej <button>.

konto usunięte

Temat: Text input - zbiorowa modyfikacja

Najwyraźniej słoneczko mi już przygrzało.
Pytanie jeszcze jak nakłonić jQuery, aby wartości z text input'ów traktował jako liczby, a nie jako string? (wartość procentową dopisuje mi na końcu :/)

konto usunięte

konto usunięte

Temat: Text input - zbiorowa modyfikacja

Janusz Pyzio:
Najwyraźniej słoneczko mi już przygrzało.
Pytanie jeszcze jak nakłonić jQuery, aby wartości z text input'ów traktował jako liczby, a nie jako string? (wartość procentową dopisuje mi na końcu :/)

Też miałem dziś z tym problem, też znalazłem info o parseInt, oraz dodatkowo typeof. Niestety jak próbowałem to:

var test = $('div.test').attr('id');

potraktować tak: parseInt(test); to nie działało. Id było liczbą.

konto usunięte

Temat: Text input - zbiorowa modyfikacja

Krystian Podemski:
Też miałem dziś z tym problem, też znalazłem info o parseInt, oraz dodatkowo typeof. Niestety jak próbowałem to:

var test = $('div.test').attr('id');

potraktować tak: parseInt(test); to nie działało. Id było liczbą.

O ile mnie pamiec nie myli, atrybut ID nie moze zaczynac sie od cyfry.
Wiec moze dlatego nie dzialalo?
Zwrocil Ci NaN dla tej zmiennej?Andrzej Winnicki edytował(a) ten post dnia 23.07.10 o godzinie 20:48

konto usunięte

Temat: Text input - zbiorowa modyfikacja

Hm, tak NaN, zmieniłem na class potem i działało ;)

Faktycznie przecież ID nie może zaczynać się od numeru, a klasy mogą :) A ja się zastanawiałem dlaczego nie działało... :)

Następna dyskusja:

jCarousel with external [te...




Wyślij zaproszenie do