获得两个不同的单击方法以在单个Jquery函数中工作

时间:2014-07-24 22:59:48

标签: javascript jquery ruby-on-rails

我不能让这两个不同的点击功能同时工作。今天是我第一次以任何重要的方式使用JS,所以请耐心等待。我有一个selectable Jquery列表,一旦选中了其中一​​个项目,我希望用户能够单击一个提交按钮。到目前为止,列表正在运行,但我无法获取提交按钮来运行其代码。

  $(function () {
      var user_id;

      $("#selectable_<%=request.id.to_s%>").selectable({
          selected: function (event, ui) {
              var result = $("#select-result-<%=request.id.to_s%>").empty();

              $(ui.selected).addClass("ui-selected").siblings().removeClass("ui-selected").each(
                      function (key, value) {
                          $(value).find('*').removeClass("ui-selected");
                      }
              );

              var index = $("#selectable_<%= request.id.to_s %> .ui-widget-content").html();
              user_id = $("#selectable_<%= request.id.to_s %> .ui-widget-content #user_id").html();
              result.append(( index ));
              alert('User selected');
          }
      });

      $("#submit_button").submit(function () {
          if (user_id) {
              //Passing mdate and phone variables to rails controller(book_date & phone)
              window.open(location.protocol + '//' + location.host + '/' + "completes/create?&doer=" + user_id, "_self");
              alert("passed");
          }
          else {
              alert("Please select a user.");
          }
      });
  });

我尝试将提交代码移动到可选择的上方,这使得selectable无法正常运行。很明显,这只是让我一次运行其中一种方法。有什么想法吗?

编辑:我将功能更改为.click,但仍然没有运气。

之前我没有提到过,但我正在使用Rails。但我认为使用简单的HTML按钮标签我会没问题,因为我只需要它来执行JS。这可能与问题有关吗?

无论如何,我已经尝试将按钮更改为Rails,这就是我现在所拥有的:

<%= button_tag "Submit", :id => "submit_button", :class => "btn btn-small btn-inverse",    :type => "button" %>

此外,这一切都发生在Bootstrap模式中。

1 个答案:

答案 0 :(得分:2)

尝试将提交按钮的submit()处理程序更改为click()处理程序。

 $("#submit_button").click(function (e) {

     // in case your button is of type "submit", prevent default submit action
     e.preventDefault();

          if (user_id) {
              //Passing mdate and phone variables to rails controller(book_date & phone)
              window.open(location.protocol + '//' + location.host + '/' + "completes/create?&doer=" + user_id, "_self");
              alert("passed");
          }
          else {
              alert("Please select a user.");
          }
 });

submit()仅适用于forms