jQuery submit не работает в Opera
у меня есть простая форма, которая может быть отправлена вне элемента через небольшой скрипт jQuery.
<script type="text/javascript">
$(document).ready(function() {
$('#mybutton').click(function(){
$('#myform').attr('action', '/url/to/form').submit();
});
});
</script>
кнопка - это просто обычная ссылка
<a href="javascript:void(0);" id="mybutton">Just a normal link</a>
форма просто нормальная форма
<form id="myform" action="/url/to/form">
....
<input type="submit" value="Search">
</form>
Это отлично работает в IE, FF, Chrome и Safari, но не для Opera. В Opera он всегда перенаправляется на мою домашнюю страницу, а не на url-адрес действия формы. Я попытался установить действие в скрипте (как указано выше) и обычно в параметре действия формы но безуспешно. Я запускаю этот последний jQuery и Opera.
пожалуйста, помогите
Edit: я также использую jQuery UI framework для обработки некоторых материалов и взаимодействий
3 ответов
Я считаю, что это будет связано с тем, что в настоящее время неполный класс jQuery ui select. Он добавляет тег a с href как # я считаю, что это может быть вашей проблемой.
Первое, что я хотел сделать, это изменить обработчик, чтобы предотвратить действие по умолчанию для ссылки:
$('#mybutton').click(function(ev){
ev.preventDefault();
$('#myform').attr('action', '/url/to/form').submit();
});
используя <a>
теги для кнопок означает, что вы должны быть осторожны, чтобы браузер не запутался в семантике. У меня нет большого опыта отладки вещей в Opera, но это первое, что я бы заподозрил.
если нет реального "href", связанного с "button", я бы спросил, почему это <a>
тег, это может быть просто простой <span>
, который также может иметь обработчик щелчка, но который не имеет потенциально проблемного собственного поведения.
попробуйте просто $('#myform').submit();
вместо $('#myform').attr('action', '/url/to/form').submit();
Edit: как сказал другой ответ, вам сначала нужно позвонить event.preventDefault();
прежде чем делать что-либо на событии click, так как это предотвращает перенаправление браузера.
Edit2: правильный код будет такой:
<script type="text/javascript">
$(document).ready(function() {
$('#mybutton').click(function(event){
event.preventDefault();
$('#myform').attr('action', '/url/to/form').submit();
});
});
это должно работать нормально.