-1

我想知道如何设置search_click()两个以上的功能request_url

我有一个function search_click如下,我有三种不同的用户类型request_url(请注意:user_type有些用户的有时同时是adminadmin_a,甚至一个用户同时具有三种用户类型):

function search_click() {
  var type = $('#jsSelectOption').attr('data-value'),
    keywords = $('#search_keywords').val(),
    request_url = '';
  if (keywords == "") {
    return
  }
  if (type == "test") {
    request_url = "/admin?keywords=" + keywords
  } else if (type == "user") {
    request_url = "/admin/user?keywords=" + keywords
  }
}

我试图用下面的代码更改上面的代码,但它不起作用。

function search_click() {
  var type = $('#jsSelectOption').attr('data-value'),
    keywords = $('#search_keywords').val(),
    request_url = '';
  if (keywords == "") {
    return
  }
  if (type == "test") {
    request_url = "/admin?keywords=" + keywords
    request_url = "/admin_a?keywords=" + keywords
    request_url = "/admin_b?keywords=" + keywords
  } else if (type == "user") {
    request_url = "/admin/user?keywords=" + keywords
    request_url = "/admin_a/user?keywords=" + keywords
    request_url = "/admin_b/user?keywords=" + keywords
  }
}

base.html的部分代码如下,

  <div class="searchbox fr">
   <div class="selectContainer fl">
        <span class="selectOption" id="jsSelectOption" data-value="course">
          Type of search
        </span>
        <ul class="selectMenu" id="jsSelectMenu">
          <li data-value="test">test</li>
          <li data-value="test_score">test score</li>
          <li data-value="user">user</li>
        </ul>
    </div>
    <script src="{% static 'js/jquery.min.js' %}"></script>
    <input id="search_keywords" class="fl" type="text" value="" placeholder="Please input keyword here"/>
    <img class="search_btn fr" id="jsSearchBtn" src="{% static 'img/search_btn.png' %}"/>
  </div>
4

2 回答 2

0

此代码只是重新分配变量,这意味着您最终得到了分配给它的最后一个值,在这种情况下是"/admin_b/user?keywords=" + keywords.

request_url = "/admin/user?keywords=" + keywords
request_url = "/admin_a/user?keywords=" + keywords
request_url = "/admin_b/user?keywords=" + keywords

如果要将所有这些值存储在request_url变量中,则应使用对象而不是字符串。

// declare request_url like this instead of request_url = '';  
request_url = {
  value1: null,
  value2: null,
  value3: null,
};

if (type == "test") {
  request_url.value1 = "/admin?keywords=" + keywords;
  request_url.value2 = "/admin_a?keywords=" + keywords;
  request_url.value3 = "/admin_b?keywords=" + keywords;
} else if (type == "user") {
  request_url.value1 = "/admin/user?keywords=" + keywords
  request_url.value2 = "/admin_a/user?keywords=" + keywords
  request_url.value3 = "/admin_b/user?keywords=" + keywords
}

And then just type request_url.value1, request_url.value2. request_url.value3 to access the corresponding values.

于 2018-06-10T16:41:59.727 回答
0

Finally I solved this issue by creating three base.html and three javascript.js for different requested_url with different user types, I know it's not the best and perfect way, it's stupid and complicated, but It's the only way for me so far, after I tried all ways what I knew and searched.

于 2018-06-12T03:50:44.257 回答