【发布时间】:2012-02-10 10:14:13
【问题描述】:
我正在使用 jQuery 对话框插件,因为我需要在用户点击时做出决定
这是我的代码
<script type='text/javascript'>
$(function() {
//destroying dialog
$('#rdy').tipsy();
$('#flt').tipsy();
$('#num').tipsy();
$('#tpe').tipsy();
$('#reg').tipsy();
$('#etd').tipsy();
$('#dla').tipsy();
$('#dp').tipsy();
$('#rem').tipsy();
$('#to').tipsy();
$('#eta').tipsy();
$('#arr').tipsy();
});
$(function(){
var fDep=document.forms.fDep;
var flt=fDep.elements['flt[]'];
var num=fDep.elements['num[]'];
var reg=fDep.elements['reg[]'];
var etd=fDep.elements['etd[]'];
var dla=fDep.elements['dla[]'];
var dep=fDep.elements['dep[]'];
var eta=fDep.elements['eta[]'];
var arr=fDep.elements['arr[]'];
for (var i=0;i<flt.length;i++){
//var aCtrl=ctrls[i];
//window.alert(etd[i].value);
$(flt[i]).mask("aa?a");
}
for (var i=0;i<num.length;i++){
//var aCtrl=ctrls[i];
//window.alert(etd[i].value);
$(num[i]).mask("99?999");
}
for (var i=0;i<etd.length;i++){
//var aCtrl=ctrls[i];
//window.alert(etd[i].value);
$(etd[i]).mask("99:99");
}
for (var i=0;i<dla.length;i++){
$(dla[i]).mask("99:99");
}
for (var i=0;i<dep.length;i++){
$(dep[i]).mask("99:99");
}
for (var i=0;i<eta.length;i++){
$(eta[i]).mask("99:99");
}
for (var i=0;i<arr.length;i++){
$(arr[i]).mask("99:99");
}
for (var i=0;i<reg.length;i++){
$(reg[i]).mask("99?9999");
//$(reg[i]).css("color","#ff00ff");
}
});
$(".edit_tr").change(function(){
//window.alert($(this).attr('id'));
var rowID=$(this).attr('id');
//window.alert($("#dep" + rowID).val());
var sendReq;
var flt=$("#flt"+rowID).val();
var num=$("#num"+rowID).val();
var tpe=$("#tpe"+rowID +" option:selected").val();
var reg=$("#reg"+rowID).val();
var etd=$("#etd"+rowID).val();
var dla=$("#dla"+rowID).val();
var dep=$("#dep"+rowID).val();
var rem=$("#rem"+rowID).val();
var city=$("#city"+rowID +" option:selected").val();
var eta=$("#eta"+rowID).val();
var arr=$("#arr"+rowID).val();
//window.alert();
var dataStr="flt="+flt+"&"
+"num="+num+"&"
+"tpe="+tpe+"&"
+"reg="+reg+"&"
+"etd="+etd+"&"
+"dla="+dla+"&"
+"dep="+dep+"&"
+"rem="+rem+"&"
+"city="+city+"&"
+"eta="+eta+"&"
+"arr="+arr;
//window.alert(dataStr);
$("#dialog-confirm" ).dialog({
resizable: false,
height:140,
modal: true,
buttons: {
"Сохранить": function() {
$("#ico"+rowID).html("<img src='images/indic.gif' />");
$( this ).dialog( "close" );
sendReq=true;
},
"Отмена": function() {
$("#ico"+rowID).html("");
$( this ).dialog( "close" );
}
}
});
if (sendReq==true){
$.ajax({
type: "POST",
url: "updFlt.php",
data: dataStr,
cashe: false,
success: function(html){
$("#ico"+rowID).html("");
window.alert("It's ok");
}
});
}else
{
window.alert("false");
}
});
</script>
当用户单击第一个按钮时,我有一个对话框弹出窗口,其中包含 2 个按钮,我需要使用 ajax 发送数据,否则取消......
$("#dialog-confirm" ).dialog({
resizable: false,
height:140,
modal: true,
buttons: {
"Сохранить": function() {
$("#ico"+rowID).html("<img src='images/indic.gif' />");
$( this ).dialog( "close" );
sendReq=true;
},
"Отмена": function() {
$("#ico"+rowID).html("");
$( this ).dialog( "close" );
}
}
});
之后我使用 ajax 检查并发送到服务器
if (sendReq==true){
$.ajax({
type: "POST",
url: "updFlt.php",
data: dataStr,
cashe: false,
success: function(html){
$("#ico"+rowID).html("");
window.alert("It's ok");
}
});
}else
{
window.alert("false");
}
});
我得到的结果是window.alert("false"); - 这行代码在 jQuery 对话框弹出之前执行!!为什么会这样???当我运行我的网络应用程序并更改表格行标准警报首先弹出(模态形式)然后我到达confirm-dialog
$("#dialog-confirm" ).dialog() 弹出虽然这行代码在标准警报调用之前!!!
【问题讨论】:
-
为什么使用字符串作为 POST 数据?你可以传递一个对象...
-
我有一个将
var字符串变量传递给dataarg 的示例!!!它可以正常工作))但无论如何都需要查看 jquery api docs!!! -
应该是这样的?
var obj = { var1: "var1Val", var2: "var2Val" }; -
完全正确(有时 cmets 的 15 个字符的最小长度很糟糕)
标签: javascript jquery jquery-ui jquery-plugins