Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Android-文本输入未使用自定义验证插件验证_Javascript_Jquery_Android_Input - Fatal编程技术网

Javascript Android-文本输入未使用自定义验证插件验证

Javascript Android-文本输入未使用自定义验证插件验证,javascript,jquery,android,input,Javascript,Jquery,Android,Input,我正在研究,我收到一份错误报告,说安卓2.3有一些问题 我下载了Android SDK,并尝试了2.3版本中的插件,结果似乎是文本输入没有验证,错误没有显示或出现错误。其他输入验证良好。我在安卓4.0+上试用过,似乎效果不错。 我不知道从哪里开始,因为我不知道问题是从哪里来的,我没有一部真正的Android手机来调试这些东西,而且emulator缺乏开发工具和其他东西 我怀疑在这里发布代码转储会有所帮助,但这是validate()方法,可以在js/idealforms.js中找到。“bug”必须

我正在研究,我收到一份错误报告,说安卓2.3有一些问题

我下载了Android SDK,并尝试了2.3版本中的插件,结果似乎是文本输入没有验证,错误没有显示或出现错误。其他输入验证良好。我在安卓4.0+上试用过,似乎效果不错。 我不知道从哪里开始,因为我不知道问题是从哪里来的,我没有一部真正的Android手机来调试这些东西,而且emulator缺乏开发工具和其他东西

我怀疑在这里发布代码转储会有所帮助,但这是
validate()
方法,可以在
js/idealforms.js
中找到。“bug”必须来自该文件中的这里或其他地方,除非与CSS相关,我不这么认为

/** Validates an input
 * @memberOf Actions
 * @param {object} input Object that contains the jQuery input object [input.input]
 * and the user options of that input [input.userOptions]
 * @param {string} value The value of the given input
 * @returns {object} Returns [isValid] plus [error] if it fails
 */
validate: function (input, value) {

  var isValid = true,
      error = '',
      $input = input.input,
      userOptions = input.userOptions,
      userFilters = userOptions.filters

  if (userFilters) {

    // Required
    if (!value && /required/.test(userFilters)) {
      error = (
        userOptions.errors && userOptions.errors.required
          ? userOptions.errors.required
          : 'This field is required.'
      )
      isValid = false
    }

    // All other filters
    if (value) {
      userFilters = userFilters.split(/\s/)
      for (var i = 0, len = userFilters.length; i < len; i++) {
        var uf = userFilters[i],
            theFilter = typeof Filters[uf] === 'undefined' ? '' : Filters[uf],
            isFunction = typeof theFilter.regex === 'function',
            isRegex = theFilter.regex instanceof RegExp
        if (
          theFilter && (
            isFunction && !theFilter.regex(input, value) ||
            isRegex && !theFilter.regex.test(value)
          )
        ) {
          isValid = false
          error = (
            userOptions.errors && userOptions.errors[uf] ||
            theFilter.error
          )
          break
        }
      }
    }

  }

  return {
    isValid: isValid,
    error: error
  }
}
/**验证输入
*行动纲领
*@param{object}包含jQuery输入对象[input.input]的输入对象
*以及该输入的用户选项[input.userOptions]
*@param{string}value给定输入的值
*@returns{object}如果失败,则返回[isValid]加[error]
*/
验证:功能(输入、值){
var isValid=true,
错误=“”,
$input=input.input,
userOptions=input.userOptions,
userFilters=userOptions.filters
if(用户过滤器){
//必需的
如果(!value&&/required/.test(userFilters)){
错误=(
userOptions.errors&&userOptions.errors.required
?userOptions.errors.required
:'此字段为必填字段。'
)
isValid=false
}
//所有其他过滤器
如果(值){
userFilters=userFilters.split(/\s/)
for(var i=0,len=userFilters.length;i

谁能帮帮我吗?我想让这个插件在尽可能多的平台上工作,但如果没有真正的Android手机,很难做到这一点。

这是当前的代码吗

我无法指出会导致您出现问题的任何具体原因,但有时这些类型的错误是由特定浏览器版本中的怪癖引起的,因此我要检查以下几点:

(1) 我知道分号在Javascript中被认为是“可选的”,但我看到一些浏览器(特别是移动浏览器——这是从经验中学习的)如果不包括分号,就会出现古怪的行为。我会在每一句话之后加上它们

(2) 我看到您在这里引用了一个Filters变量:

        theFilter = typeof Filters[uf] === 'undefined' ? '' : Filters[uf],
你是说userFilters…还是Filters是一个全局变量,这里没有显示

(3) 此变量声明:

$input = input.input,
您真的想调用变量$input吗?它不在任何地方使用

(4) 当您同时使用&&和| |时,我会通过括号明确指出分组:

if (
      theFilter && (
        isFunction && !theFilter.regex(input, value) ||
        isRegex && !theFilter.regex.test(value)
      )
    )

  error = (
    userOptions.errors && userOptions.errors[uf] ||
    theFilter.error
  )
希望这能有所帮助。

1:我试过了,但没什么不同。我把所有的东西都放在一个文件里,所以我怀疑这是问题所在。2:
过滤器
不是全局过滤器,但它位于更高的范围内。我认为问题也不在这里。3:
$input
是本地的,此处没有冲突。4:虽然问题可能已经出现了,但我尝试以更“传统”的方式重新组织,但问题仍然存在。。。这个bug似乎很难捕捉到……我想这可能是安卓浏览器的bug,而不是我的实际代码。也许有办法…谁知道呢。无论如何,谢谢你+1.