анулиране във формуляра за подаване на функция за потвърждение в javascript

Имам формуляр, който изисква потребителите да въведат сума за дарение. При щракване върху изпращане се извиква функция и функцията има за цел да покаже посочената сума и да подкани потребителя да потвърди дали въведената сума е действителната сума или не.

Опцията Cancel в Confirm() продължава да изпраща формуляра, вместо да връща false.

function donationFormSend(){

    get_donation_amount = document.getElementById("get_donation_amt").value;

    if(get_donation_amount != ''){
        return confirm("You have specified "+get_donation_amount+" as the amount you wish to donate. \n\n Are you sure you want to proceed with the donation?");
    }
    else{
        alert("Amount must be specified to process your donation.");
        return false;   
    }

}    


<form method="post" action="">
<div>
      <div>Donation Amount:</div>
      <input name="amount" type="text" id="get_donation_amt" required="required" />
    </div>   
  <input name="donation_submit" type="submit" id="Submit" value="Proceed" onclick="return donationFormSend();" />
  </form>

Jsfiddle връзка

Ще се радвам да получа помощ за това.


person Ous    schedule 25.11.2014    source източник
comment
Защо просто не използвате връзка, която изглежда като изпращане, но всъщност не е? по този начин не е нужно да се забърквате твърде много. щракването върху него разкрива истинското изпращане или нещо подобно   -  person Patrick    schedule 25.11.2014
comment
@Patrick - Искаш да кажеш нещо като промяна на типа на изпращане на формуляра от type='submit' на type='button'... Това ли предлагаш?   -  person Ous    schedule 25.11.2014
comment
@FelixKling - Добавих връщане към потвърждението(), но все още не работи   -  person Ous    schedule 25.11.2014
comment
Е, вашата цигулка е настроена неправилно. Сега това е дубликат на JavaScript не работи на jsfiddle.net   -  person Felix Kling    schedule 25.11.2014


Отговори (2)


Аз актуализирах вашия jsfiddle, така че да е в очаквания формат (зареждане на js в главата) и връщане на потвърждението резултат

return confirm('blah blah')

работи перфектно за мен във FF! Просто се уверете, че сте изчистили кеша си и презаредете страницата си.

person James Levett    schedule 25.11.2014

Начин да го направите може да бъде:

форма:

   <form id='test' method="post" action="">
    <div>
          <div>Donation Amount:</div>
          <input name="amount" type="text" id="get_donation_amt" required="required" />
     </div>   
      <input type="submit" value="submit" onClick="form_submit(this.value)">
    <input type="submit" value="cancel" onClick="form_submit(this.value)">
     </form>

javascript:

document.getElementById('test').addEventListener('submit',function (event) {
 if (event.preventDefault) { 
      event.preventDefault();
   } else {
      event.returnValue = false; 
   }
})

form_submit= function (submited_by) {

  if(submited_by == 'submit'){
    alert('Submited')
   }else if (submited_by == 'cancel'){
   alert('cancelled')  
  }

}  

Предпочитам да използвам оператор switch, за да го направя разширяем в бъдеще, но това трябва да работи.

Също така използвам jquery най-вече защото не съм сигурен как да спра действието по подразбиране без него.

ето JSFiddle с работещ код.

РЕДАКТИРАНЕ: Актуализиран, за да не използва Jquery.

РЕДАКТИРАНЕ: добре, сега се чувствам глупаво, разбрах, че не е бутон за отказ във формуляр за изпращане, а във формуляр за потвърждение.

person Thermatix    schedule 25.11.2014