2

У меня есть форма со структурой как таковой:IE8 JQuery Представлять не работает для форм

<form id="myForm"> 
    <div> 
    <input .....> 
    <input ......> 
    </div> 

    <div> 
    <input ....> 
    <input ....> 
    </div> 

    <input type="submit"> 
</form> 

мне нужно сделать окно подтверждения, когда форма была отправлена, так что я сделал это:

$('#myForm').submit(function(e){ 
    e.preventDefault(); 
    if(confirm('something here')){ 
    $('myForm').submit(); 
    } 
}); 

Как мы все знаем, IE8 не любит divs в форме и, очевидно, html немного сломан. Это приводит к нарушению моего jquery!

Как я могу обойти это?

+0

Каким образом IE8 не похож на DIVs в FORM? Каким образом HTML сломан? То, что вы разместили, выглядит нормально. Что означает «это приводит к нарушению моего jquery»? – RoToRa

+0

Кроме того, если у вас есть проблемы с jQuery, используйте базовый JavaScript/DOM. Прикрепление диалогового окна подтверждения к форме тривиально без jQuery. – RoToRa

ответ

2

Поскольку вы используете обработчик submit событий, если подтверждение является отрицательным, то вы должны предотвратить действие по умолчанию, это может быть сделано с помощью

Это должно быть

$('#myForm').submit(function(e){ 
    if(!confirm('something here')){ 
    e.preventDefault(); 
    } 
}); 
0

Попробуйте вместо этого:

$('#myForm').submit(function(e){ 
    e.preventDefault(); 
    if(confirm('something here')){ 
    this.submit(); 
    } 
}); 
+0

с контекстом jquery ..'this' должен быть '$ (это)' ..корректируйте меня, если я ошибаюсь – coolguy

+1

@ubercooluk вы хотите вызвать обработчик javascript здесь, а не jQuery, так что это 'this.submit() 'not' $ (this) .submit() '. BTW, стреляющий обработчик jquery с помощью '$ (this)' просто напомнит того же обработчика снова и снова, создавая бесконечный цикл, если результат подтверждения равен «true». Так что, вы ошибаетесь :) –

+0

@ жареный..отчет за информацию – coolguy

0

Или вы можете просто использовать JavaScript, нет необходимости делать дополнительные усилия на этом

<form id="myForm" onsubmit="return confirm('Something Here');"> 
+0

К сожалению, у меня нет доступа к html, потому что он автоматически генерируется. –

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