2016-03-22 1 views
-1

У меня есть кнопка HTML, которая вызывает функцию checkTax(). Функция должна либо подтвердить, либо продолжить отправку формы при нажатии OK, либо отменить отправку и перенаправить пользователя на другую страницу.Проблемы с функцией javascript/window.confirm

Это функция:

function checkTax() { 
    if (CUSTTAXRATE == 0) { 
     var r = confirm("Your current tax rate is 0.\n\nIf this is correct click OK to continue.\n\nIf this needs to be adjusted, click CANCEL and visit the quote set up page under DEALER RESOURCES tab."); 
     if (r == true){ 
      return true; 
     } 
     else { 
     <!--- return false; ---> 
      window.location.replace("index.cfm?action=retailQuote.settings"); 

     } 
    } 

} 

Я попытался как только отменить представление или перенаправлять его, но я не могу получить ни работать. Оба способа по-прежнему представляют форму и продолжаются. Что я делаю неправильно?

+2

Какой код вы используете, чтобы вызвать эту функцию. Можете ли вы показать это, пожалуйста? – putvande

+0

Для справки JS использует '//' для однострочных комментариев. Вы включаете комментарии HTML, которые могут нарушить ваш скрипт. – DBS

+0

Связанные: [Как предотвратить отправку формы?] (Http://stackoverflow.com/q/3350247/4642212) – Xufox

ответ

0

Убедитесь, что вы используете инструкцию return в атрибуте кнопки onclick.

<button type="submit" onclick="return checkTax();">Submit</button> 

В противном случае, возвращаемое значение функции будет игнорироваться, и это не будет препятствовать форме от представления, когда он возвращается false.

+0

Это то, что я делал неправильно. Мне нужно было добавить «return» в onClick. большое спасибо. –

0

Я пробовал выполнить приведенные выше ответы для вашего упрощения. Вы можете найти код ниже:

<body> 
<form action=""> 
    <input type=text id="t1"> 
    <button type="submit" onclick="return checkTax();">Submit</button> 
</form> 

<script type="text/javascript"> 
    function checkTax() { 
     var CUSTTAXRATE = document.getElementById("t1"); 
     if (CUSTTAXRATE == 0) { 
      var r = confirm("Your current tax rate is 0.\n\nIf this is correct click OK to continue.\n\nIf this needs to be adjusted, click CANCEL and visit the quote set up page under DEALER RESOURCES tab."); 
      if (r == true) { 
       return true; 
      } else { 
       window.location 
         .replace("index.cfm?action=retailQuote.settings"); 
       return false; 
      } 
     } 

    } 
</script> 

Смежные вопросы