弹出窗口怎么处理返回值
beginWidget('zii.widgets.jui.CJuiDialog', array( 'id'=>'mydialog', // additional javascript options for the dialog plugin 'options'=>array( 'title'=>'选择接收者组', 'autoOpen'=>false, 'modal'=>true, 'buttons'=>array( '确定'=>'js:function(){var rv; $("input[name="group-grid_c0[]"]:checkbox:checked").each(function{(rv+=$(this).val();)}); window.dialogArguments.getElementbyid("group").value=rv; $(this).dialog("close"); } ', '关闭'=>'js:function(){$(this).dialog("close");}', ), ), )); echo $this->renderPartial('/group/_choose',null,TRUE); $this->endWidget('zii.widgets.jui.CJuiDialog'); // the link that may open the dialog echo CHtml::link('选择接收者组', '#', array( 'onclick'=>'$("#mydialog").dialog("open"); return false;', )); ?>
现在问题是确定按钮老是有问题。我jquery不熟,请大家帮我看看。谢谢!
回复讨论(解决方案)
$("input[name="group-grid_c0[]"]:checkbox:checked").each(function{(rv+=$(this).val();)});
window.dialogArguments.getElementbyid("group").value=rv;
$(this).dialog("close");
改成
$("input[name=" +group-grid_c0[] +"]:checkbox:checked").each(function{(rv+=$(this).val();)});
window.dialogArguments.getElementbyid("group").value=rv;
$(this).dialog("close");
字符串和变量之间用+相连
另外善用firebug之类的工具来看看出错提示
说错 如果你这个group-grid_c0[]不是变量而是字符串的话 要改为
$("input[name= 'group-grid_c0[] ']:checkbox:checked").each(function{(rv+=$(this).val();)});
window.dialogArguments.getElementbyid("group").value=rv;
$(this).dialog("close");
谢谢anyilaoliu,group-grid_c0[]这个字符串的确有问题,要改成
$("input[name=\'group-grid_c0\[\]\']:checkbox:checked").each(function{(rv+=$(this).val();)});
两个引号和大括号都要转义。但是问题还是依旧。弹出窗口会直接嵌在主页面上。哪位可以解释一下吗?
嵌在主页面上是什么意思? 不明 上图看看呗
'确定'=>'js:function(){var rv;
$("input[name= \"group-grid_c0[] \"]:checkbox:checked").each(function{(rv+=$(this).val();)});
window.dialogArguments. getElementById("group").value=rv;
$(this).dialog("close");
}',
正常情况下应该是点击‘选择接收者组’连接后弹出一个窗口如下图:
而现在却是弹出窗口直接显示在主页面上了点击‘选择接收者组’也没有任何作用
啊,图贴反了
解决了吗?
一般来说要弹出的部分要先hide 然后当你点击的时候show
看样式是不是用了jquery_ui 首先看看隐藏了没 其次看看那个 选择接受者组 是否绑定了事件