saya punya formulir, saat mengklik tombol kirim:
berikut adalah kode saya
<?php
if(isset($_POST['btn'])){
//do some task
?>
<script type="text/javascript">
var e = document.getElementById('testForm'); e.action='test.php'; e.submit();</script>
<?php
}
?>
<form name="testForm" id="testForm" method="POST" >
<input type="submit" name="btn" value="submit" autofocus onclick="return true;"/>
</form>
tetapi tidak dapat mengirimkan formulir, jika saya memanggil kode javascript pada onClick, itu berfungsi. Apa masalah dalam kode ini, Apakah ada solusi untuk ini
Cukup echo javascript di dalam fungsi if
<form name="testForm" id="testForm" method="POST" >
<input type="submit" name="btn" value="submit" autofocus onclick="return true;"/>
</form>
<?php
if(isset($_POST['btn'])){
echo "
<script type=\"text/javascript\">
var e = document.getElementById('testForm'); e.action='test.php'; e.submit();
</script>
";
}
?>
Anda dapat memasang semua JS Anda seperti ini, sehingga tidak dieksekusi sebelum HTML Anda siap
$(document).ready(function() {
// some code here
});
Ingat ini adalah jQuery, jadi sertakan di bagian kepala. Lihat juga Mengapa Anda harus menggunakan jQuery dan bukan onload
Pada saat skrip dieksekusi, tombol tidak ada karena DOM tidak dimuat sepenuhnya. Solusi termudah adalah dengan meletakkan blok skrip setelah formulir.
Solusi lain adalah dengan menangkap event window.onload
atau menggunakan jQuery library (terlalu berlebihan jika Anda hanya memiliki JavaScript yang satu ini).