Кнопка 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>