Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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
在Rails助手中使用Javascript调用验证文本字段时,如何返回最后一个有效输入?_Javascript_Ruby On Rails_Validation_Textfield - Fatal编程技术网

在Rails助手中使用Javascript调用验证文本字段时,如何返回最后一个有效输入?

在Rails助手中使用Javascript调用验证文本字段时,如何返回最后一个有效输入?,javascript,ruby-on-rails,validation,textfield,Javascript,Ruby On Rails,Validation,Textfield,我有一个文本字段 text_field_tag('version',version, :cols => 20 , :onchange => "validateVer(this);") 在ValidateEver java脚本函数中,我正在检查是否输入了有效的浮点值,如果没有,我将默认返回1.0。如何在文本字段(版本)中返回上一个值。一种方法是将上一个有效值存储在数据-属性中: // modify your validateVer function to return false i

我有一个文本字段

text_field_tag('version',version, :cols => 20 , :onchange => "validateVer(this);")

在ValidateEver java脚本函数中,我正在检查是否输入了有效的浮点值,如果没有,我将默认返回1.0。如何在文本字段(版本)中返回上一个值。

一种方法是将上一个有效值存储在
数据-
属性中:

// modify your validateVer function to return false if validation fails and true otherwise
function validateVer(elem) {
}

function changeIfValid(elem) {
  if (validateVer(elem)) {
    $(elem).data('last-valid-version', $(elem).val());
  } else {
    var lastValidVersion = $(elem).data('last-valid-version');
    if (lastValidVersion != null) {
      $(elem).val(lastValidVersion);
    } else {
      $(elem).val('1.0');
    }
  }
}
并将文本字段更改为调用
changeiffalid
,用于
onChange
事件:

text_field_tag('version', 
               version, 
               :cols => 20, 
               :onchange => "changeIfValid(this);")
编辑:要初始化
数据最后有效版本
或设置
文本字段标记
的任何其他属性,您只需将其作为哈希值传递给
文本字段标记
方法:

text_field_tag('version', 
               version, 
               :cols => 20, 
               "data-last-valid-version" => "A_DEFAULT_VAL",
               :onchange => "changeIfValid(this);")

顺便说一下,
data-*
属性是HTML5的一个特性,而不是Rails。即使您使用的是HTML 4或XHTML,jQuery仍然可以为您处理它们。

一种方法是将最后一个有效值存储在
数据-
属性中:

// modify your validateVer function to return false if validation fails and true otherwise
function validateVer(elem) {
}

function changeIfValid(elem) {
  if (validateVer(elem)) {
    $(elem).data('last-valid-version', $(elem).val());
  } else {
    var lastValidVersion = $(elem).data('last-valid-version');
    if (lastValidVersion != null) {
      $(elem).val(lastValidVersion);
    } else {
      $(elem).val('1.0');
    }
  }
}
并将文本字段更改为调用
changeiffalid
,用于
onChange
事件:

text_field_tag('version', 
               version, 
               :cols => 20, 
               :onchange => "changeIfValid(this);")
编辑:要初始化
数据最后有效版本
或设置
文本字段标记
的任何其他属性,您只需将其作为哈希值传递给
文本字段标记
方法:

text_field_tag('version', 
               version, 
               :cols => 20, 
               "data-last-valid-version" => "A_DEFAULT_VAL",
               :onchange => "changeIfValid(this);")

顺便说一下,
data-*
属性是HTML5的一个特性,而不是Rails。即使您使用的是HTML 4或XHTML,jQuery仍然可以为您处理它们。

我是rails新手,如何在ruby代码中初始化elem.data我是rails新手,如何在ruby代码中初始化elem.data