首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有引导的rails的“模态形式”部分工作。

带有引导的rails的“模态形式”部分工作。
EN

Stack Overflow用户
提问于 2012-04-21 12:14:35
回答 1查看 5.7K关注 0票数 1

在Rails 3.2.3中,我使用引导2.0.2调制解调器在部分视图中有一个表单

代码语言:javascript
复制
#myModal.modal
  .modal-header
    .close{"data-dismiss" => "modal"}= link_to "x", root_path
    %h3 Add Tags
  .modal-body
    = form_tag '/tagging', :remote => true do
      = text_field_tag 'tags_string', params[:tags_string]
      = hidden_field_tag 'id', params[:id]
      .modal-footer
        = submit_tag "Add tag", :class => "btn btn-primary"
  :javascript
    $(document).ready(function() {
      $('#myModal .btn.btn-primary').click(function() {
        $('#myModal').modal('hide');
        $('form').submit();
      });
    });

我是“主”页面,我有一个链接按钮来调用这个部分:

代码语言:javascript
复制
%td= link_to "Tag", tagging_path(:id => "#{repo.id}", :tags_string => "#{repo.tags}"), "data-toggle" => "modal", :class => "tag add-tag btn btn-primary

控制器具有相对标注方法。

现在我有两个问题:

  1. 第一 当我单击该按钮时,它正确地显示表单,但它保留了“主”页(我不想要),将相对的href (空的)显示为背景: string= 这是由链接按钮中的“tagging_path”生成的。我不能像在引导示例中那样调用这个模式: 发射演示模式 因为我需要用表单参数填充控制器/模型,所以.怎么做呢?
  2. 第二: 当我单击表单中的"Add tag“按钮时,数据库将获得正确的内容,并且所有内容都会正常工作,但只有单击"X”链接(这只是指向root_path的链接,而不是JS操作),表单才会失效。 所以看起来js没能正常工作 $(.ready)(函数(){ $('#myModal .btn.btn‘).click(函数(){$(’#myModal‘).modal(’hide‘;$('form').submit();});};

更新:

这是生成的html:

代码语言:javascript
复制
<div class='modal hide fade' id='myModal'>
    <div class='modal-header'>
        <div class='close' data-dismiss='modal'><a href="/">x</a></div>
            <h3>Add Tags</h3>
        </div>

        <div class='modal-body'>
        <form accept-charset="UTF-8" action="/tagging" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" />
                <input name="authenticity_token" type="hidden" value="vlZaCIRV58BfDZ0xjYsefSEVL1LSpiI5UL1tgzbm/8o=" /></div>
            <input id="tags_string" name="tags_string" type="text" />
            <input id="id" name="id" type="hidden" />

            <div class='modal-footer'>
            <input class="btn btn-primary" name="commit" type="submit" value="Add tag" />
            </div>
        </form>
    </div>
</div>

<td>
    <a href="/tagging?id=4f82cb5cf370ff000100003a&amp;tags_string=ruby+web+framework" class="tag add-tag btn btn-primary" data-toggle="modal">Tag</a></td>
</tr>
<tr>
<td>
    <div class='gravatar'><img alt="Assets.github.com%2fimages%2fgravatars%2fgravatar-orgs" height="26" src="https://secure.gravatar.com/avatar/b0f9595244db739302ccce55bfbfc5e5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png" width="26" /></div>
</td>
<td>
    <a href="https://github.com/h5bp/html5-boilerplate">h5bp/html5-boilerplate</a>
</td>
<td class='watchers span1'>12105</td>
<td class='forks span1'>1781</td>
<td>A professional front-end template that helps you build fast, robust, adaptable, and future-proof websites.</td>
<td>Sun, Jan 24 at  6:03pm</td>
<td>Sat, Apr 14 at  2:10pm</td>

...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-21 15:54:07

1)使用event.preventDefault()停止链接操作

2)你的选择器需要一个空间。或者你可以把.btn完全排除在外。

代码语言:javascript
复制
$(document).ready(function() {
    $('#myModal .btn-primary').click(function(e) {
        e.preventDefault();
        $('#myModal').modal('hide');
        $('form').submit();
    });
});

如果您发布您的模式的呈现HTML标记,我可以帮助您的选择器,因为使用类通常不是一个好主意,如果您想要捕获特定的按钮单击。

编辑给定标记:

好的,您只需将按钮改为button类型,而不是submit,然后按其name选择它。如果您使用的是不需要调用submitform.submit,默认情况下它会这样做。使用button类型可以提供更多的控制。

代码语言:javascript
复制
$('input[name="commit"]').click(function() {
    //$('form').submit();
    $('#myModal').modal('hide');        
});

工作示例:http://jsfiddle.net/tcjCj/3/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10258799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档