سؤال

أنا أبحث عن برنامج نصي لمنع المستخدم من الضغط على زر الإرسال مرتين بشكل خاص لنماذج معالجة الخلفية لفترة طويلة. أرغب في تنفيذ شيء ليس وظيفيًا فحسب ، بل جذابة بصريًا أيضًا. هل يمكن لأي شخص أن يشارك بعض النصائح حول كيفية تحقيق ذلك باستخدام ، على سبيل المثال ، scriptAcoubed؟

شكرًا

هل كانت مفيدة؟

المحلول

هذا ليس نصفيًا ، لكنني دائمًا ما فعلت ذلك مثل هذا:

لغة البرمجة:

<form onsubmit="return checkDoubleSubmit(this) && yourSubmitroutine();">
  <input ...>
   ...
  <input type="hidden" value="0" id="dscheck">
</form

JavaScript:

function checkDoubleSubmit(form) {
    var v = 0;
    var e = form.getElementById("dscheck");
    if (e != null) {
        v = e.value;
        v = v * 1;  // Coerce to number
        e.value = "1";
    }
    return v == 0;
}

نصائح أخرى

باستخدام النموذج الأولي ، يمكنك تجربة شيء مثل هذا:

var DoubleSubmit = {
prevent: function(){
    var forms = document.body.select('form');
    forms.invoke('observe', 'submit', DoubleSubmit.observeSubmit);
},
observeSubmit: function(event){
    var submitButtton = event.element().select('input[type="submit"]')[0];
    submitButtton.disable();
    return true;
}};document.observe('dom:loaded',DoubleSubmit.prevent);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top