Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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作为加载Rails表单的条件?_Javascript_Css_Ruby On Rails 3 - Fatal编程技术网

JavaScript作为加载Rails表单的条件?

JavaScript作为加载Rails表单的条件?,javascript,css,ruby-on-rails-3,Javascript,Css,Ruby On Rails 3,我有一个带有Jquery插件要求的表单,它创建了一个具有Facebook自动完成类型样式的表单输入字段: <%= javascript_include_tag "form_prettify_library" %> <div class="box"> <ul id="first_form" class="tagit"> <li class="prettify-new"></li> </ul> &l

我有一个带有Jquery插件要求的表单,它创建了一个具有Facebook自动完成类型样式的表单输入字段:

<%= javascript_include_tag "form_prettify_library" %>

<div class="box">
  <ul id="first_form" class="tagit">
      <li class="prettify-new"></li>
  </ul>
    <%= form_for @brand do |f| %>
    <%= f.hidden_field :tag_list, :value => @brand.tags_from(current_user).join(", "),
                                  :id => "mytaglist" %>
    <%= f.submit "Add tags" %>
    <%= f.error_messages %>
    <% end %>
</div>

@brand.tags\u from(当前用户)。join(“,”), :id=>“mytaglist”%>
它工作得很好,但是如果没有JavaScript,表单就不能工作,因为上面的表单只有一个隐藏的_字段,没有可见的输入字段(输入字段是由标签中的插件创建的),我需要它在移动设备上没有JavaScript的情况下工作。如果加载了JavaScript,是否有方法显示上面的代码,否则将显示下面的代码

<div class="box">
  <%= form_for @brand do |f| %>
    <%= f.label :tag_list, "Your tags" %>
    <%= f.text_field :tag_list, :value => @brand.all_tags_list %>
    <%= f.submit "Add tags" %>
  <% end %>
</div> 

@品牌。所有标签\u列表%>

是,默认情况下使用css将其隐藏,并在启用js时向站点添加一个类

html

<body class="no_js">
<script type="text/javascript">
(function() {
   var body = document.getElementsByTagName("body")[0];
   body.className = body.className.replace(/\bno_js\b/, " js ")
}())
</script>

是的,默认情况下使用css将其隐藏,并在启用js时向站点添加一个类

html

<body class="no_js">
<script type="text/javascript">
(function() {
   var body = document.getElementsByTagName("body")[0];
   body.className = body.className.replace(/\bno_js\b/, " js ")
}())
</script>

虽然这是可行的,但我想要一个更像Rails的解决方案。这将是实现您需要的标准方法。让rails(服务器端)检测js是否可用(客户端)不可能不向服务器发送另一个请求,因此唯一的选择是为非js表单提供服务,如果js表单可用,则通过ajax获取js表单,这总体上会比较慢。我不确定你所说的更rails的处理方式是什么意思(我不知道Ruby或rails),但你的服务器端应用程序无法提前发现是否启用了js——浏览器不会在http请求中发送此信息。我确实想要某种服务器端检测,可能是一个嗅探js兼容性的WURFL实现。这就足够了。虽然这是可行的,但我想要一个更像Rails的解决方案。这将是实现您需要的标准方法。让rails(服务器端)检测js是否可用(客户端)不可能不向服务器发送另一个请求,因此唯一的选择是为非js表单提供服务,如果js表单可用,则通过ajax获取js表单,这总体上会比较慢。我不确定你所说的更rails的处理方式是什么意思(我不知道Ruby或rails),但你的服务器端应用程序无法提前发现是否启用了js——浏览器不会在http请求中发送此信息。我确实想要某种服务器端检测,可能是一个嗅探js兼容性的WURFL实现。这样就足够了。