如何在jqGrid中单击按钮时检索文本框的单元格内容?

时间:2014-01-09 07:04:06

标签: javascript jquery jqgrid

在我的 jqGrid 中,我有一个文本框和按钮。单击该按钮时,我需要保存用户键入的文本框的值。我试过了,但是我没有得到输出。

以下是我的 colModel

{ name: 'Price', index: 'Price', width: 120, editable: true, edittype: "text", formatter: generateTextBox },
{ name: 'Checkout', index: 'Checkout', width: 120, editable: true, formatter: generateCheckoutBtn }

我编写了自定义格式化程序来生成文本框和按钮,代码如下,

function generateTextBox(cellvalue, options, rowObject) {
        return '<input type="text" size="10" maxlength="15" />';
    }

然后我编写了一个函数来检索textbox的值,并在 generateCheckoutBtn 格式化程序中的 onclick 中调用它,如下所示

function generateCheckoutBtn(cellvalue, options, rowObject) {
        return '<button onclick="return getTextBoxValue(' + rowObject.Id + ')">Checkout</button>';
    }

getTextBoxValue 功能,如下所示

function getTextBoxValue(SelectedId) {            
        alert("RowId: " + SelectedId);
        var txt = jQuery("#CheckList").jqGrid('getCell', SelectedId, 'Price');
        alert("" + txt);
    }

该函数正确返回 rowId ,使用alert检查,但它返回 txt 的警告,

<input type="text" size="10" maxlength="15" />

我不知道如何在文本框中输入用户输入的单元格内容,然后将其保存到数据库中。当用户点击结帐按钮而不输入文字时,我必须发出警告

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

对于输入,也许你可以为它命名......

<input type="text" size="10" maxlength="15" name="yourtxtboxname" />

然后使用名称传递它。

答案 1 :(得分:0)

您必须使用唯一ID区分每个单独的文本框。将文本框ID与格式化程序中的rowId连接:

function generateTextBox(cellvalue, options, rowObject) {
    return "<input type=\"text\" size=\"10\" maxlength=\"15\" id=\"textbox" + options.rowId + "\"/>";
}

然后在检索文本框中的值时使用常规选择器:

function getTextBoxValue(SelectedId) {            
    alert("RowId: " + SelectedId);
    var txt = $("#textbox" + SelectedId).val();
    alert("" + txt);
}