jquery - 防止单击添加按钮时打开表单

标签 jquery jqgrid jqgrid-php

你们知道如何防止在我单击添加按钮时打开表单吗?

也许使用 beforeShowForm?

function(formid)
{
    if(jQuery('#gridap').getGridParam('selrow'))
    {

        idgridap=jQuery('#gridap').getGridParam('selrow');
        jQuery('#FK_numerocontrato_ap',formid).val(idgridap).attr('readonly','readonly');

    }
    else 
    {
         // I want to prevent the openning of the add form here and maybe show an alert using the "alertcap"

    }
}
CHECAROW;

$grid->setNavEvent('add','beforeShowForm',$checarowid);

顺便说一句,有没有办法调用jqgrid的alertmod并添加自定义消息?

谢谢!

最佳答案

我不明白为什么您不直接从导航栏中删除“添加”按钮。要创建导航栏,您显式调用 jqGrid 的 navGrid 方法

jQuery("#grid_id").navGrid('#gridpager'); 

jQuery("#grid_id").jqGrid('navGrid', '#gridpager');

但是 navGrid 有其他参数(请参阅 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:navigator )。所以如果你使用

jQuery("#grid_id").navGrid('#gridpager', {add: false}); 

您将没有“添加”按钮。

如果您确实需要“添加”按钮,请更清楚地解释您的情况。顺便用http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_buttons中描述的方式您可以添加一个自定义按钮,并由您完全控制。图标名称可以在页面http://jqueryui.com/themeroller/找到如果将光标放在页面底部“框架图标”区域的图标上。自定义按钮可以具有与“添加”按钮相同的图标。能解决您的问题吗?

更新:在您发表评论后,我现在明白您的问题了。我可以建议使用 navGridaddfunc 选项(请参阅 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:navigator&s[]=navgrid )。所以代码可能如下所示:

var grid = jQuery("#grid_id").navGrid('#gridpager', {addfunc: function() {
    var sel_id = grid.getGridParam('selrow');
    if (sel_id) {
        grid.editGridRow("new", pAddOption);
    } else {
        viewModal("#alertmod", { gbox: "#gbox_" + grid_id, jqm: true });
        jQuery("#jqg_alrt").focus();
    }
}});

在此示例中,仅当选择一行时才允许单击“添加”按钮。您将看到一个消息框,其中包含类似“请选择行”的文本(该文本在grid.locale-en.js中定义$.jgrid.nav.alerttext > 或您使用的其他本​​地化文件)。您可以将此代码片段放置在主网格中。

拒绝“添加”操作的代码可以更简单,我只是在这里复制了一个使用jqGrid本身的代码片段。您可以改为显示自定义错误消息。

关于jquery - 防止单击添加按钮时打开表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2841794/

相关文章:

jquery - 在 ASP.NET MVC 中呈现 jQuery jqGrid 插件后,我可以更改其双击事件处理程序 (ondblClickRow) 吗?

jquery - jQgrid - 完整的产品可以免费供个人使用吗?

jquery - 如何使用jquery获取标签的href?

javascript - 在点击的 <li> 中获取最近的 div

jquery - 如何让 Resharper 停止 Javascript 将 $ 自动补全为 '$t?

javascript - jqSuite PHP 日期选择器对话框格式不起作用

php - 当我使用 jQgrid 单击同一行中的链接时,我需要从 jqGrid 获取整行数据

jquery如何找到根据属性名称搜索的元素

jquery - 尝试理解 jQuery nth-child

javascript - jqGrid - 执行操作之前的模式窗口