【问题标题】:I can't make input textbox in upper case using javascript我无法使用 javascript 将输入文本框设为大写
【发布时间】:2018-10-25 00:41:40
【问题描述】:

我正在制作一个程序,其中所有文本框都通过 CSS 转换为大写。在我的 Javascript 中,我也想将其传递给具有与 UPPERCASE 相同的值的服务器。但是,我遇到了一个错误:

“未捕获的类型错误:无法读取未定义的属性 'toUpperCase'”

我已经尝试过来自不同 StackOverFlow 用户的不同解决方案,例如 Uncaught TypeError: Cannot read property 'toUpperCase' of undefined,但仍然出错。

这是我的代码:

  // put all gathered data in an array variable so as to send to the server for saving          
  var param = new Array();
  param[0] = clientType;
  param[1] = catv_provider;
  param[2] = existing_subs;
  param[3] = gender;
  param[4] = lastname;
  param[5] = firstname;
  param[6] = midname;
  var param2 = [];

  for (var i = 0; i < param.length; i++) {
    param2[i] = param[i].toUpperCase();
  }

【问题讨论】:

  • 数组中的一个值为空/未定义。我建议在循环中使用console.log 来找出哪个。此外,无需为大写值创建新数组。
  • 另外,请在创建 sn-p 时添加相关 HTML 并删除 minimal reproducible example 中的不相关代码
  • 考虑将所有 ID 放入一个数组中,然后循环遍历该数组(使用 map)以获取它们的值,然后将它们转换为大写。
  • 最有可能的值之一是null 或不同于字符串的类型,因为我看到了潜在的non-string value,例如preffered_date

标签: javascript jquery arrays


【解决方案1】:

这是因为您获得了价值undefined

您可以将循环修改为

    for (var i = 0; i < param.length; i++) {
     if(typeof(param[i])!=="undefined") { //skipping undefined
        param2[i] = param[i].toUpperCase();
     }
   }

【讨论】:

  • 谢谢。这真的很有意义。它解决了我的问题。谢谢!
  • @CristyNazareno,很高兴它有帮助。
【解决方案2】:

尝试关注

   for (var i = 0; i < param.length; i++) {
        if(param[i] != null){    
        param[i].toUpperCase();
     }
    }

【讨论】:

    猜你喜欢
    • 2011-12-18
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 2023-03-12
    • 2014-11-09
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    相关资源
    最近更新 更多