私の Web には小さな問題が 1 つあります。以下のような外部ファイルにフォームがあります。
<form action="/action.php" method="post" id="formularz_dodaj" target="iframe_id">
<fieldset>
<input type="hidden" name="ac" value="groups_save" />
<ul>
<li>
Some fields here
</li>
<li class="buttons">
<input type="submit" class="zapisz" value="Zapisz" />
<input type="button" class="anuluj" value="Anuluj" />
</li>
</ul>
</fieldset>
</form>
<script type="text/javascript">
//<![CDATA[
$j('.zapisz').button().click(function(){
$j('.anuluj').hide();
});
$j('.anuluj').button().click(function(){
$j('#dialog').dialog('close');
});
//]]>
</script>
ご覧のとおり、ボタン以外に特別なものはありません。結果として、フォームは jQuery を介してスタイル設定されたボタンを取得します。ボタン<input type="submit" class="zapisz" value="Zapisz" />
は通常の送信と同じように機能し<input type="button" class="anuluj" value="Anuluj" />
、ダイアログを閉じるだけです。このフォームは、次のように jQuery ajax() メソッドを介してダイアログに配置されます。
var $j = jQuery.noConflict();
var main = new Object();
$j.extend($j.ui.dialog.prototype.options, {
modal: true,
resizable: false,
width:'auto',
height:'auto',
show:{
effect:'fade',
duration:'fast'
},
hide:{
effect:'fade',
duration:'fast'
},
open:function(){
$j(this).find("input[type=text], input[type=password], input[type=checkbox], select, textarea").uniform();
}
});
main.dialog = function(ob){
if(ob.url){
var url = arguments.url;
var dialog = $j("#dialog");
if ($j("#dialog").length == 0) {
dialog = $j('<div id="dialog" class="dialog" title=""></div>').appendTo('body');
}
if(ob.title){
dialog.attr('title', ob.title);
}
$j.ajax({
type:'POST',
dataType:'html',
data:ob.dane,
url:ob.url,
success:function(d){
if(d == 'uprawnienia'){
main.alert({
text:'Nie posiadasz uprawnie\u0144 do tej operacji.',
title:'Brak uprawnie\u0144'
});
} else {
$j("#dialog").html(d);
$j("#dialog").dialog({
title:$j("#dialog").attr('title')
});
}
},
error:function(){
alert('Niepoprawne rz\u0105danie.');
}
});
} else {
alert('Brak pliku do za\u0142adowania.');
}
}
データのターゲットは、メイン インデックス ファイルに配置された iframe です。
<iframe name="iframe_id" id="iframe_id" src="" style="display:none; width:400px; height:200px;"></iframe>
クラス「.zapisz」のボタンを使用すると、IE8、Chrome、Safariなどの特定のブラウザーでは何も起こりません。IE9 と FireFox では正常に動作しています。
どのブラウザーでもコンソールを確認しましたが、エラーはありません。フォームからのデータは iframe に送信されません。クリックメソッドに追加されたJSのみが実行されます。
document.getElemntById('formularz_dodaj').submit();
ボタン「.zapisz」は、クリック機能で記述した場合のみ正常に動作します。
誰が何が間違っているのか考えていますか?