Кнопка HTML с несколькими событиями при нажатии

Я просто пытаюсь создать кнопку HTML с двумя onclickсобытия, но проблема в том, что второй не отвечает должным образом. Вот тег кнопки ниже:

<input class="btn btn-default btn-responsive" type="button" onclick="return confirm('Cancel Changes?'); location.href='${cancelLink}'" value="Cancel Changes"/>

Должно быть, я что-то делаю неправильно из-за языка выражения в location.href, но я не уверен, что это такое, поскольку я очень не знаком с использованием языка выражений в этих случаях. Я знаю, что эта ссылка работает, потому что если я использую ее в теге "a" сhref=${cancelLink}, оно работает. Любая помощь будет оценена.

2 ответа

<body>

<input class="btn btn-default btn-responsive" type="button" onclick="Click()" value="Cancel Changes"/>

<script>
    
    
    function Click(){ confirm("cancel changes"); }
    

</script>

</body>

Функция должна быть написана специально в теге JavaScript

У вас не будет нескольких событий onclick, если вы не нажмете кнопку несколько раз.

У вас есть прослушиватель событий с одним щелчком, в котором есть два оператора.

Это функция, которую вы используете:

function () {
    return confirm('Cancel Changes?');
    location.href='${cancelLink}'
}

В первой строке есть returnв нем, поэтому вы никогда не дойдете до второй строки.

Если вы хотите что-то сделать условно, используйте оператор if, а не оператор return:

function () {
    if (confirm('Cancel Changes?')) {
        location.href='${cancelLink}'
    }
}

Однако все, что вы здесь делаете, это использование JavaScript для имитации обычной ссылки: Итак, вам следует использовать обычную ссылку:

<a class="btn btn-default btn-responsive" 
   onclick="return !confirm('Cancel Changes?')"
   href="${cancelLink}">
       Cancel Changes
</a>
Другие вопросы по тегам