Mam taki kod
Kod
var accepted = false;
function accept()
{
if(!accepted)
{
accepted = true;
document.reg.post_register.value = "omgwtfbbq";
return false;
}
return true;
}
function accept()
{
if(!accepted)
{
accepted = true;
document.reg.post_register.value = "omgwtfbbq";
return false;
}
return true;
}
Funkcje wywołuję w ten sposób:
<form name="reg" id="reg" action="" method="post" onsubmit="return accept();">
Efekt ma być taki: jest sobie formularz, a w nim przycisk submit z jakąś tam treścią. Po kliknięciu pierwszy raz - ma się zmienić jego treść, natomiast za drugim kliknięciem formularz ma zostać normalnie wysłany.
Firefox, Chrome a nawet IE radzą sobie z tym doskonale, a moja ukochana opera nie..
Konsola błędów JS w operze po kliknięciu przycisku wypluwa:
Cytat
Event thread: submit
Error:
name: TypeError
message: Statement on line 1: Type mismatch (usually non-object value supplied where object required)
Backtrace:
Line 1 of function script
return accept();
...
stacktrace: n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'
Error:
name: TypeError
message: Statement on line 1: Type mismatch (usually non-object value supplied where object required)
Backtrace:
Line 1 of function script
return accept();
...
stacktrace: n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'
i formularz zostaje normalnie wysłany.
Nakombinowałem się przy tym nieźle, już wysiadam..