Producr代码只能包含大写字符。如果输入小写字符,jqgrid不会将它们转换为大写,则没有这样的选项。 如何在文本字段的内联和表单编辑模式下强制jqgrid中输入字符的大写转换?
更新
我在How can I force input to uppercase in an ASP.NET textbox?的最后一个答案中找到了代码。此代码在keypress中以大写形式更改输入的字符。通过将keyprees事件处理程序添加到jqgrid编辑控件来使用它是否合理?
function ToUpper() {
// So that things work both on FF and IE
var evt = arguments[0] || event;
var char = String.fromCharCode(evt.which || evt.keyCode);
// Is it a lowercase character?
if (/[a-z]/.test(char)) {
// convert to uppercase version
if (evt.which) {
evt.which = char.toUpperCase().charCodeAt(0);
}
else {
evt.keyCode = char.toUpperCase().charCodeAt(0);
}
}
return true;
}
像这样使用:
<asp:TextBox ID="txtAddManager" onKeyPress="ToUpper()" runat="server"
Width="84px" Font-Names="Courier New"></asp:TextBox>
答案 0 :(得分:1)
首先,您可以使用CSS样式text-transform: uppercase
来显示用户输入的大写数据:
editoptions: { dataInit: function (el) { $(el).css('text-transform', 'uppercase'); }}
该设置不会更改数据本身。所以你必须另外做相应的修改。如果是表单编辑,您可以使用beforeSubmit
。例如,让我们您需要保留大写的'name'
列。然后,您首先在text-transform: uppercase
中添加dataInit
的设置(参见上文)并添加
beforeSubmit: function (postData) {
postData.name = postData.name.toUpperCase();
return [true, ''];
}
如果是内联编辑,则没有beforeSubmit
回调函数。因此,如果您有远程数据,则可以使用serializeRowData
:
serializeRowData: function (postData) {
postData.name = postData.name.toUpperCase();
return postData;
}
如果使用editurl: 'clientArray'
,您可以修复aftersavefunc
和editRow
的{{1}}参数中的数据:
saveRow
请参阅the demo。
答案 1 :(得分:0)
尝试:
$(document).ready(function(){
$("div").text("lower case.");
var UCASE = $("div").text($("div").text().toUpperCase());
alert(UCASE);
});
或
$(document).ready(function(){
var strVal = 'lowerCase!!' ;
alert(strVal.toUpperCase());
});