چه با onsubmit و چه با onclick در هر صورت نیاز به JavaScript هست. شما فقط توسط JavaScript می تونید این رویدادها رو هندل کنید.
در ضمن شما به چه صورت از کدهای Ajax استفاده میکنید؟ کدهاتون رو بزارید تا بشه مشکل رو پیدا کرد.
برای کم شدن حجم کدها فقط کد مربوط به ایجاد XMLHttpRequest توی ادیتورهایی مثل فایرفاکی رو گذاشتم
HTML:
var xmlHttp = new XMLHttpRequest();
تابع مربوط به ايجاد اتصال به سرور:
کد:
function process()
{
try
{
xmlHttp.onreadystatechange=handleServer;
xmlHttp.open("POST","ajax.php",true);
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlHttp.send('Title=test');
}
catch (e)
{
alert ("امکان اتصال به سرور وجود ندارد\n" + e.toString());
return false;
}
}
تابع مربوط به خواندن پاسخ سرور:
HTML:
function handleServer()
{
if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
var newdiv = document.getElementById('www');
newdiv.innerHTML=xmlHttp.responseText;
}
}
تگ فرم به این صورت هست که وقتی از این حالت استفاده می کنم کدهای آژاکس اجرا نمی شن.
HTML:
<form id="form1" name="form1" method="post" action="new.php" onSubmit="return process()" >
لطفا توجه کنید که اگه تگ فرم رو حذف کنم، و onclick رو به دکمه ارسال فرم اختصاص بدم، فیلدهای فرم از طریق آژاکس به خوبی ارسال می شه اما اگر کاربر جاوا اسکریپت رو غیر فعال کنه امکان استفاده از آژاکس وجود نداره و چون تگهای فرم رو حذف کردم فرم هم ارسال نمی شه. یعنی هرچی روی دکمه ارسال فرم کلیک کنه به علت غیرفعال بودن جاوااسکریپت فرم ارسال نمی شه.
امیدوارم منظورم رو رسونده باشم.