Witam próbuję przeslać formularz ajaxem ale napytam na ta taki problem, że po kliknięciu "wyślij" nie idzie cała funkcja, a po ponownym kliknięciu "wyślij" powstaje błąd "form is undefined"
function complete()
{
alert('pierwszy');// po wysłaniu ten alert wyskakuje
formname='sedndata';
responsediv=document.getElementById('Terminarz');
var day = document.getElementById('day').value;
var month = document.getElementById('month').value;
var year = document.getElementById('year').value;
if (XMLHttpRequestObject) {
alert('ifhtpprequest');
XMLHttpRequestObject.open("POST", "result.php");
XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
XMLHttpRequestObject.onreadystatechange = function ()
{
if (XMLHttpRequestObject.readyState == 1)
{
alert('drugi');// ten już nie - dopiero kiedy nacisne 2 raz
document.getElementById('td1').innerHTML ='<div class="ajaxloader"></div>';
}
if (XMLHttpRequestObject.readyState == 4)
{
updatepage(XMLHttpRequestObject.responseText,responsediv);
}
XMLHttpRequestObject.send(getquerystring(formname));
}
}
}
function getquerystring(formname) {
var form = document.forms[formname];
var qstr = "";
function GetElemValue(name, value) {
qstr += (qstr.length > 0 ? "&" : "") +
escape(name).replace(/\+/g, "%2B") +
"="+ escape(value ? value : "").replace(/\+/g, "%2B");
}
var elemArray = form.elements; // za pierwszym kliknieciem nie dochodzi tutaj, za 2 blad form is undefined
for (var i = 0; i < elemArray.length; i++) {
var element = elemArray[i];
var elemType = element.type.toUpperCase();
var elemName = element.name;
if (elemName) {
if (elemType == "TEXT")
GetElemValue(elemName, element.value);
}
}
return qstr;
}
i kod html, który jest w większej części dodany przez appendchildy
<form id="purchaseContainer1" onsubmit="complete(); return false;" name="senddata">
<div id="addInpt1" class="add" style="display: block;">
<button class="add" onclick="addInpt(); return false;">dodaj pozycję</button>
<input class="complete" type="submit" value="wyśli"/> //przycisk, który muszę kliknąć 2 razy zeby przeszła funkcja:/
</div>
<div class="label2">Zakup</div>
<div class="label2">Ilosc</div>
<div class="label2">Cena (zł)</div>
<div class="label2">Prowizja (%)</div>
<input class="purchaseItem" type="text" name="purchase[]"/>
<input class="purchaseItem" type="text" name="volume[]"/>
<input class="purchaseItem" type="text" name="price[]"/>
<input class="purchaseItem" type="text" name="procentage[]"/>
<input class="purchaseItem" type="text" name="purchase[]"/>
<input class="purchaseItem" type="text" name="volume[]"/>
<input class="purchaseItem" type="text" name="price[]"/>
<input class="purchaseItem" type="text" name="procentage[]"/>
<input class="purchaseItem" type="text" name="purchase[]"/>
<input class="purchaseItem" type="text" name="volume[]"/>
<input class="purchaseItem" type="text" name="price[]"/>
<input class="purchaseItem" type="text" name="procentage[]"/>
</form>
dla send(null) tez nie dochodzi do konca za pierwszym razem, co tu jest nie tak?
Ten post edytował neo1986kk 8.02.2011, 02:27:13