PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

弹出窗口怎么处理返回值

原创
2016-06-23 14:17:05 754浏览

PHP Yii

我用Yii框架做了个弹出框选择组,并返回给主页面
    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('选择接收者组', '//m.sbmmt.com/m/faq/#', 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 首先看看隐藏了没 其次看看那个 选择接受者组 是否绑定了事件

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。