如何在jqgrid中实现大写转换

时间:2011-11-06 10:49:32

标签: javascript jquery jqgrid uppercase

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> 

2 个答案:

答案 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',您可以修复aftersavefunceditRow的{​​{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()); 
});