在我的 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" />
我不知道如何在文本框中输入用户输入的单元格内容,然后将其保存到数据库中。当用户点击结帐按钮而不输入文字时,我必须发出警告。
任何帮助将不胜感激!
答案 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);
}