我是Rails的新手,我需要实现一个解决方案作为项目的一部分。
我已经声明了变量并为其分配了值。
@variable = "TEXT"
,然后是一个文本框字段,其值等于@varaible
<input id="textfield" type="text" name="textfield" value="<%= @variable %>">
现在,我要检查文本字段值是否已更改。如果是更改,则需要覆盖@variable
并将其设置为等于输入的文本,否则我需要使用初始化后的默认值。
我尝试使用onblur()
,但不知道如何在rails变量中获取文本字段值并覆盖它。
我需要这样做,因为,还有另一个脚本将@variable
作为参数之一。
答案 0 :(得分:0)
首先设置初始值,然后再进行模糊检查以检查其是否已更改:
<input id="textfield" type="text" name="textfield" value="<%= @variable %>" onblur="changed(this);">
VALUE = document.getElementById('textfield').value;
function changed(e){
if(e.value == VALUE){
// Do nothing if value is not changed
} else {
Rails.ajax({
url: "url for the page",
type: "GET",
data: "variable=" + e.value,
success: function(data) {
console.log(data);
}
});
}
}
现在在控制器中,您可以访问参数并覆盖变量。