функция подтверждения не работает - PullRequest
4 голосов
/ 21 октября 2011
*<html>
<head>
<title>practise</title>
<script type="text/javascript">
function confirm() {
    var r = confirm("Press the button");
    if (r == true) {
        alert("You are right");
    } else {
        alert("You are wrong");
    }
}

</script>
</head>

<body>
        <input type="button" name="submit" value="showtime" onclick="confirm()"/>
    </div>
</body>
</html>*

Я хочу знать, в чем проблема.Это не работает, но это так же, как в http://www.w3schools.com/js/js_popup.asp

Ответы [ 5 ]

7 голосов
/ 21 октября 2011
  1. Вы рекурсивно вызываете confirm(), и он находится в бесконечном цикле
  2. У вас есть * в начале и конце документа
  3. Как указал Кеннебек, вы перезаписываете window.confirm
  4. У вас есть свисающий конец </div> в <body>

http://jsfiddle.net/cvyyL/

<html>
   <head>
      <title>practise</title>
      <script type="text/javascript">
         function show_confirm() {
            var r = confirm("Press the button");
            if (r == true) {
               alert("You are right");
            } else {
               alert("You are wrong");
            }
         }    
      </script>
   </head>
   <body>
      <input type="button" name="submit" value="showtime" onclick="show_confirm()"/>
   </body>
</html>
2 голосов
/ 21 октября 2011

Ваша функция имеет то же имя, что и встроенная функция window.confirm(), поэтому ваша функция заменяет ее. Затем внутри вашей функции вы вызываете confirm(), что означает, что она рекурсивно вызывает себя.

Это должно работать, если вы просто переименуете свою функцию во что-то другое. (Например, страница w3schools, на которую вы ссылаетесь, вызывает свою функцию 'show_confirm'.)

2 голосов
/ 21 октября 2011

Прежде всего, вы перезаписали window.confirm ... Затем вы вызываете новое подтверждение, навсегда или пока не станет слишком много рекурсии ...

1 голос
/ 21 октября 2011

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

IMOправда, очень плохая идея назвать вашу функцию «подтвердить», так как уже есть метод, который вызывает его, и вы можете выполнять повторение до тех пор, пока браузер не исчезнет.

Кроме того, сказать что-то «не работает», безсказать, что он делает, и что вы ожидаете от него, затрудняет ответы на вопросы.

0 голосов
/ 15 января 2018

confirm() - это предопределенная функция в javascript, поэтому вы не можете использовать ее для имени одной из ваших функций.Это ошибка, переименуйте функцию, и она будет работать правильно.

Также удалите * из начала и конца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...