emmjot
26.01.2009, 14:11:47
Witam,
Mam następujący problem:
Napisałam formularz w Jquery, i działa dobrze we wszystkich przeglądarkach z wyjątkiem Internet Explorer (korzystam z wersji 6).
Odpowiadający fragment kodu:
var liczba;
var new_input = $("<input>");
new_input.attr("type", "text");
new_input.attr("name", "imie"+(liczba));
var counter = liczba;
var new_input1 = $("<input>");
new_input1.attr("type", "hidden");
new_input1.attr("name", "liczba");
new_input1.attr("value", +counter);
Mój skrypt pozwala na dynamiczne dodawanie wierszy w formularzu. Wiersze są numerowane. Ilość wierszy muszę przekazać metodą POST do zapisu w bazie . Niestety, z tego co zauważyłam, skrypt nie działa w IE dlatego, że atrybut "value" nie jest poprawnie odczytywany. Jeśli go nie używam, skrypt działa prawidłowo.
Czy mógłby mi ktoś powiedzieć, czy istnieje jakiś inny sposób na przekazanie zmiennej z JavaScript do pliku php, bez używania atrybutu value? W jaki sposób mogę to zrobić?
Z góry dziękuję za wszelkie sugestie,
Pozdrawiam,
nospor
26.01.2009, 14:18:58
nie: +counter
a: ++counter
i popraw kod o bbcode
wookieb
26.01.2009, 14:19:46
Jak ma byc poprawnie czytany jak dajesz takie cos?
+counter Do czego dodajesZ?
emmjot
26.01.2009, 14:27:00
Ale na końcu skryptu mam inkrementację zrobioną (tutaj wrzuciłam tylko fragment kodu). W innych przeglądarkach dodaje się poprawnie. W IE też działa i się sumuje, jeśli usunę ze skryptu ten jeden input z atrybutem value.
Chodzi mi to, że ja tą liczbę jakoś muszę przekazać do pliku PHP i nie znam innego sposobu niż VALUE, a VALUE tu własnie nie działa.
Może wrzucę cały skrypt, i zaznaczę, z powodu której linijki skrypt nie działa TYLKO pod Internet Explorerem (inne przeglądarki interpretują całość poprawnie):
<script language="javascript" type="text/javascript">
var liczba = 1;
$(document).ready(
function()
{
$("#dodaj").click(function()
{
var new_label = $("<div>");
var new_input = $("<input>");
new_input.attr("type", "text");
new_input.attr("name", "expense_name"+(liczba));
var new_input2 = $("<input>");
new_input2.attr("type", "text");
new_input2.attr("name", "calendar"+(liczba));
var new_input3 = $("<input>");
new_input3.attr("type", "text");
new_input3.attr("name", "amount"+(liczba));
var new_input5 = $("<input>");
new_input5.attr("type", "text");
new_input5.attr("readonly", "readonly");
new_input5.attr("name", "sumka1"+(liczba));
var counter = liczba;
var new_input10 = $("<input>");
new_input10.attr("type", "hidden");
new_input10.attr("name", "liczba");
new_input10.attr("value", +counter); //przez tą linijkę nie działa pod IE
var new_link = $("<a>");
new_link.attr("href", "#");
new_link.html("delete");
new_link.click(function()
{
$(this).parent("div").remove();
return false;
});
var new_br = $("<br>");
new_label.append(new_input);
new_label.append(new_input2);
new_label.append(new_input3);
new_label.append(new_input5);
new_label.append(new_input10);
new_label.append(new_link);
new_label.append(new_br);
$("form[@name=formularz]").append(new_label);
liczba++;
return false;
});
});
</script>
nospor
26.01.2009, 14:28:33
1) podalem ci czemu nie dziala, a ty nadal powielasz blad. wookieb zresztą też doglębnie cie nakierował
2) prosilem o bbcode. 2 x prosic nie bede
w razie pytan zapraszam na PW
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.