Değer eğer test bir işlevdir
onsubmit
bir form değerini bir fonksiyon olup olmadığını test etmek istiyorum. Biçimi genellikle onsubmit="return valid();"
. Bir yol varsa bu fonksiyon ise, ve eğer çağrı mı var? Sattığınız kullanarak bana pek bir faydası yok eden bir dize sadece verir.
EDİT: Elbette, anlıyorum, "geçerli () return;" bir dize. D indir replace
I "() geçerli;" bile "() geçerli". Eğer ikisi de bir işlevi olup olmadığını bilmek istiyorum.
EDİTBurada benim sorunum açıklamaya yardımcı olabilir hangi kodu:
$("a.button").parents("form").submit(function() {
var submit_function = $("a.button").parents("form").attr("onsubmit");
if ( submit_function && typeof( submit_function.replace(/return /,"") ) == 'function' ) {
return eval(submit_function.replace(/return /,""));
} else {
alert("onSubmit is not a function.\n\nIs the script included?"); return false;
}
} );
2 DÜZENLEYİNBurada yeni kodu. Ben hala bir değerlendirme, form arama çünkü kullanmak zorunda gibi görünüyor.() gönderme mevcut onsubmits ateş etmiyor.
var formObj = $("a.button").parents("form");
formObj.submit(function() {
if ( formObj[0].onsubmit && typeof( formObj.onsubmit ) == 'function' ) {
return eval(formObj.attr("onsubmit").replace(/return /,""));
} else {
alert("onSubmit is not a function.\n\nIs the script included?");
return false;
}
} );
Bu daha iyi yapmak için muhtemelen bir öneriniz var mı?
CEVAP
Düğme ile gönder değiştiriyorum bağlantı çapa. Arama beri form.() gönderme değil etkinleştir onsubmit, onu buluyorum, ve ()eval ıng kendim. Ama istiyorum eğer işlevi önce olup olmadığını kontrol edin ()sadece eval orada ne ıng. – gms8994
<script type="text/javascript">
function onsubmitHandler() {
alert('running onsubmit handler');
return true;
}
function testOnsubmitAndSubmit(f) {
if (typeof f.onsubmit === 'function') {
// onsubmit is executable, test the return value
if (f.onsubmit()) {
// onsubmit returns true, submit the form
f.submit();
}
}
}
</script>
<form name="theForm" onsubmit="return onsubmitHandler();">
<a href="#" onclick="
testOnsubmitAndSubmit(document.forms['theForm']);
return false;
"></a>
</form>
EDİT : işlev testOnsubmitAndSubmit eksik parametre f
Yukarıda ne olursa olsun onsubmit
HTML özniteliği atarsınız, ister iş veya JavaScript atayın:
document.forms['theForm'].onsubmit = onsubmitHandler;
Eğer çalıştırılabilir Python varsa Tes...
Eğer genel bir türü bir dize ise test ...
Eğer numaralama sınıf için geçersiz de...
Eğer işaretsiz bir değişken için negat...
Nasıl eğer değer boş ise Jackson bir a...