jQuery dialog form提出バックグラウンドで値を取ることができない解決方法
2348 ワード
1.よく知られているように、jQuery dialogによって処理された後、対応するモジュールはbodyに追加され、formには含まれず、formを提出する際、バックグラウンドでデータが取得されない.
2.解決方法:
隠し変数、すなわちformで隠し変数を定義し、dialogがイベントに応答した後、隠し変数に値を割り当てることで、formがコミットされ、隠し変数をバックグラウンドに持ち込むことができます.
3.例:
4.質問:コンテンツが多い場合は、複数の非表示変数を定義しますか?
答え:それはdialogには向いていません
2.解決方法:
隠し変数、すなわちformで隠し変数を定義し、dialogがイベントに応答した後、隠し変数に値を割り当てることで、formがコミットされ、隠し変数をバックグラウンドに持ち込むことができます.
3.例:
<html>
<head>
<script type="text/javascript" src="jquery-ui-1.10.3.custom/js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="jquery-ui-1.10.3.custom/js/jquery-ui-1.10.3.custom.js"></script>
<link rel="stylesheet" type="text/css" href="jquery-ui-1.10.3.custom/css/ui-lightness/jquery-ui-1.10.3.custom.css"/>
</head>
<body>
<script>
$(function(){
$('#dialogDiv').dialog({
modal:true,
autoOpen:false,
width: 300,
height:216,
resizable:false,
position:"center",
buttons: {
' ': function() {
$('#id').val($('#dialogId').val());
$('#name').val($('#dialogName').val());
$(this).dialog('close');
},
' ': function() {
$(this).dialog('close');
}
}
});
$.openDialog = function() {
$('#dialogDiv').dialog('open');
}
$.show = function() {
alert('form id :' + $('#mainForm #id').val());
alert('form name :' + $('#mainForm #name').val());
alert('form , id、name ');
}
})
</script>
<form id="mainForm">
<input type="hidden" id="id"/>
<input type="hidden" id="name"/>
<input type="button" value=" " onclick="$.openDialog()"/>
<input type="button" value=" " onclick="$.show()"/>
<div id="dialogDiv" title="test">
<input type="text" id="dialogId"/><br/>
<input type="text" id="dialogName"/>
</div>
</form>
</body>
</html>
4.質問:コンテンツが多い場合は、複数の非表示変数を定義しますか?
答え:それはdialogには向いていません