تقديم نموذج باستخدام مسج دون الحاجة إلى التنقل إلى شاشة أخرى

StackOverflow https://stackoverflow.com/questions/800108

  •  03-07-2019
  •  | 
  •  

سؤال

أنا أحاول أن تجعل من ذلك أن تقديم نموذج لا يسبب الصفحة للتنقل واستخدام ajaxSubmit تقديم المحتوى.ولكن عندما كنت اضغط على زر إرسال, فإنه لا يزال يتنقل إلى الصفحة في العمل سمة من النموذج.هيريس جافا سكريبت:

var options = {
    success: processLogin
};
$('#loginform').submit(function() {
    $(this).ajaxSubmit(options);
    return false;
});

و ها هو شكل:

<form id='loginform' action='login.php' method='post'>
    <table id='logintable'>
        <tr>
            <td>Room:</td>
            <td><input id='roomname' type='text' name='roomname' /></td>
        </tr>
        <tr>
            <td>Nickname:</td>
            <td><input id='nickname' type='text' name='nickname' /></td>
        </tr>
        <tr>
            <td colspan='2' class='center'><input type='submit' value='Submit' /></td>
    </table>
</form>
هل كانت مفيدة؟

المحلول

استخدام هذا الحدث.preventDefault()

$('#loginform').submit(function(e) {
    e.preventDefault();
    $(this).ajaxSubmit(options);
});

نصائح أخرى

وثمة خيار آخر هو تغيير المدخلات html الوسم <input id="save" type="Button" value="submit" /> الذي يتيح لك الزر الذي لا يفعل شيئا إلا تقديم جافا سكريبت هوك.

استخدام جافا سكريبت التالي إلى اياكس تقديم النموذج الخاص بك

$("#save").click(function() {
    $("#loginform").ajaxSubmit();
}

في القيام بذلك تفقد القدرة على تقديم النموذج عن طريق الضغط على enter.يمكنك التغلب على هذا بما يلي قطعة من مسج:

$("input").keypress(function(e) {
    if (e.which == 13) {
        $("#save").click();
    }
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top