RubyonRails按钮单击使用jQuery填充文本字段
我试图使用jQuery在点击按钮时填充一个文本字段,并且有一些问题。我在这里发布了一个关于这个的问题,但不确定提供的答案,因为它似乎过于复杂(它可能是正确的,但我没有实现的运气) 确认是否按照Christian在另一个问题中提到的方式或更简单的方式进行操作将非常好,并且非常感谢示例代码。正如在另一个问题中提到的,我对ROR和jQuery都是新手 关于这个问题的更多信息 该按钮存在于new和edit.html.erb中,并位于文本字段旁边的form_for块中(我有一个单独的按钮来提交表单)。我希望能够使用Ruby方法SecureRandom.urlsafe_base64填充该字段RubyonRails按钮单击使用jQuery填充文本字段,jquery,ruby-on-rails,textbox,buttonclick,Jquery,Ruby On Rails,Textbox,Buttonclick,我试图使用jQuery在点击按钮时填充一个文本字段,并且有一些问题。我在这里发布了一个关于这个的问题,但不确定提供的答案,因为它似乎过于复杂(它可能是正确的,但我没有实现的运气) 确认是否按照Christian在另一个问题中提到的方式或更简单的方式进行操作将非常好,并且非常感谢示例代码。正如在另一个问题中提到的,我对ROR和jQuery都是新手 关于这个问题的更多信息 该按钮存在于new和edit.html.erb中,并位于文本字段旁边的form_for块中(我有一个单独的按钮来提交表单)。我
非常感谢 我假设您已经包含jQuery并且已经正常工作了。因此,为了简单起见,将此javascript放在app/assets/javascripts/devices.js中。如果这样做,请确保同一目录中的application.js包含“/=require_树。”(这将拉入该目录中的所有文件,包括您刚才创建的文件)。最重要的是,确保在正在呈现的布局中包含“application.js”。(可能是app/views/layouts/application.html.erb) app/assets/javascripts/devices.js:
$(function(){
$("#deviceIDbutton").click(function(e){
$.get("/generate_device_id", function(data){
$("#deviceIDfield").val(data);
});
e.preventDefault();
})
})
然后,添加路由,以便AJAX调用知道要调用的控制器和操作
app/config/routes.rb
get '/generate_device_id', :to=>"devices#generate_device_id"
然后,添加将调用您请求的SecureRandom方法的控制器操作
应用程序/控制器/设备\u controller.rb
def generate_device_id
render :text=>SecureRandom.urlsafe_base64
end
我假设您已经包含jQuery并且已经正常工作了。因此,为了简单起见,将此javascript放在app/assets/javascripts/devices.js中。如果这样做,请确保同一目录中的application.js包含“/=require_树。”(这将拉入该目录中的所有文件,包括您刚才创建的文件)。最重要的是,确保在正在呈现的布局中包含“application.js”。(可能是app/views/layouts/application.html.erb) app/assets/javascripts/devices.js:
$(function(){
$("#deviceIDbutton").click(function(e){
$.get("/generate_device_id", function(data){
$("#deviceIDfield").val(data);
});
e.preventDefault();
})
})
然后,添加路由,以便AJAX调用知道要调用的控制器和操作
app/config/routes.rb
get '/generate_device_id', :to=>"devices#generate_device_id"
然后,添加将调用您请求的SecureRandom方法的控制器操作
应用程序/控制器/设备\u controller.rb
def generate_device_id
render :text=>SecureRandom.urlsafe_base64
end
非常感谢你!现在每次单击时都会更新,但有一个小问题,由于某些原因,字段会更新两次,即当我单击按钮时,ID会更改,然后立即再次更改。有什么想法吗?我通过在事件中添加stopImmediatePropagation()来解决这个问题,即在e.preventDefault()下面;放置e.停止即时复制();再次谢谢你,迈克!你让我高兴极了!非常感谢你!现在每次单击时都会更新,但有一个小问题,由于某些原因,字段会更新两次,即当我单击按钮时,ID会更改,然后立即再次更改。有什么想法吗?我通过在事件中添加stopImmediatePropagation()来解决这个问题,即在e.preventDefault()下面;放置e.停止即时复制();再次谢谢你,迈克!你让我高兴极了!