【问题标题】:how to change "editurl" and submit "Edit Form" using custom button in Edit Form in jqGrid?如何使用 jqGrid 中编辑表单中的自定义按钮更改“editurl”并提交“编辑表单”?
【发布时间】:2012-02-14 17:03:21
【问题描述】:

我正在使用 jqGrid。

这是我的代码:

    $("#list").jqGrid({
        url:'urlone.php',
        editurl:'somepage.php',
        datatype: 'json',
        mtype: 'POST',
        colNames:['ID','Name'],
        colModel :[ 
          {name:'cid', index:'cid'},
          {name:'name', index:'name'}
        ],
        "postData":{"oper":"grid"},
        "prmNames":{"query":"grid"},
        pager: '#pager'         
      }).navGrid('#pager',        {"edit":true,"add":true,"del":false,"search":false,"refresh":true,"view":false,edittitle: "Edit Candidate",addtitle: "Add Candidate",deltitle: "Delete Candidates",searchtitle: "Search Candidates",refreshtitle: "Refresh Data",viewtitle: "View Candidate",edittext: "Edit",addtext: "Add",deltext: "Delete",searchtext: "Search",refreshtext: "Refresh",viewtext: "View"},
      prmEdit,prmAdd);


    prmEdit = {
                "drag":false,"resize":false,"closeOnEscape":true,"dataheight":430,"datawidth":450,"width":500,"errorTextFormat":function(r){ return r.responseText;},"closeAfterEdit":true,viewPagerButtons:false,"editCaption":"Update Candidate",reloadAfterSubmit:true,recreateForm:true
             ,beforeShowForm: function($form) {
                    $form.parent().find('.EditButton').prepend('<a href="javascript:void(0)" id="qButton" class="fm-button ui-state-default ui-corner-all fm-button-icon-left">Update &amp; Qualify<span class="ui-icon ui-icon-flag"></span></a>');
            },beforeSubmit : function(postdata, formid){
                    $.ajaxFileUpload({
                        url: 'uploadResume.php?id='+postdata.cid+'&cname='+postdata.name, 
                        secureuri:false,
                        fileElementId:'resume',
                        dataType: 'json',
                        success: function (data, status) {
                            if(typeof(data.error) != 'undefined')
                            {
                                if(data.error != '')
                                {
                                    alert(data.error);
                                }else{
                                    alert(data.msg);
                                }
                            }
                            return[true,"Resume successfuly uploaded"];
                        },
                        error: function (data, status, e)
                        {
                            return[false,e];
                        }
                   });
                   return[true,"Resume not uploaded"];
            }, afterComplete : function (response, postdata, formid) {
                    var txt = '{"responseT":['+response.responseText+']}';
                    var obj = eval ("(" + txt + ")");
                    if(obj.responseT[0].msg == null) msgStr = "Undefined Error, Contact Admin!";
                    else msgStr = obj.responseT[0].msg;
                    openmsgbox(obj.responseT[0].err,msgStr);
            }
    };

    prmAdd = {  "drag":false,"resize":false,"closeOnEscape":true,"dataheight":430,"datawidth":450,"width":500,"errorTextFormat":function(r){ return r.responseText;},"closeAfterAdd":true,viewPagerButtons:false,"addCaption":"Add Candidate","bSubmit":"Add",reloadAfterSubmit:true,recreateForm:true, beforeSubmit : function(postdata, formid){
                    $.ajaxFileUpload({
                        url: 'uploadResume.php?id='+postdata.cid+'&cname='+postdata.name, 
                        secureuri:false,
                        fileElementId:'resume',
                        dataType: 'json',
                        success: function (data, status) {
                            if(typeof(data.error) != 'undefined')
                            {
                                if(data.error != '')
                                {
                                    alert(data.error);
                                }else{
                                    alert(data.msg);
                                }
                            }
                            return[true,"Resume successfuly uploaded"];
                        },
                        error: function (data, status, e)
                        {
                            return[false,e];
                        }
                   });
                   return[true,"Resume not uploaded"];
            }, afterComplete : function (response, postdata, formid) {
                    var txt = '{"responseT":['+response.responseText+']}';
                    var obj = eval ("(" + txt + ")");
                    if(obj.responseT[0].msg == null) msgStr = "Undefined Error, Contact Admin!";
                    else msgStr = obj.responseT[0].msg;
                    openmsgbox(obj.responseT[0].err,msgStr);
            }
    };

我在编辑表单中添加了一个名为“Update & Qualify”的自定义按钮。现在,当用户单击默认提交按钮时,表单应使用现有的 editurl 提交,但是当单击“更新和限定”按钮时,“editurl”的值应更改为“somepage.php?do=qualify”并且表单应提交...但我不知道该怎么做...有人可以帮我吗??

【问题讨论】:

  • @oleg 你是最有资格正确回答这个问题的人..请帮帮我,我必须在两天内提交这个项目..
  • 如果您在开发某些商业项目时需要支持,您可以通过电子邮件与我联系:oleg.kiriljuk@ok-soft-gmbh.com

标签: jqgrid


【解决方案1】:

要将点击从新按钮转发到原来的“提交”按钮,您可以在beforeShowForm 的代码后面加上以下几行

$("#qButton").click(function () {
    $("#sData").click();
});

此外,您可以在click 处理程序内设置任何变量并测试该变量以区分从新按钮提交和从原始“提交”按钮提交。

onclickSubmit 回调中,您可以更改url 属性:

onclickSubmit: function (params, posdata) {
    // first test something and then change the URL with
    params.url = "newUrl";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多