在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