簡體   English   中英

無法在MVC4中的Select標簽更改時調用javascript函數

[英]Unable to call a javascript function onchange of a Select tag in MVC4

我試圖從MVC中的選擇標記調用JS函數onchange。 它似乎不起作用。 這是代碼。

在首頁視圖中,我有以下div,其中包含select標記

<div class="container">
    <!-- beginning of search block -->
    <form role="form">
        <div class="form-group">
            <select class="form-control" id="select1" name="select1" onchange="populate(this.id,'select2')">
                <option value="Residential">RESIDENTIAL</option>
                <option value="Commercial">COMMERCIAL</option>
            </select>
            <select class="form-control" id="select2" name="select2"></select>
        </div>
    </form>
</div>

在_Layout頁面中,我引用Scripts文件夾

<script src="~/Scripts/searchform.js" type="text/javascript"></script>

我正在調用的javascript函數是

function populate(s1, s2) {
  var s1 = document.getElementById(s1);
  var s2 = document.getElementById(s2);
  s2.innerHTML = "";
  if (s1.value == "Residential") {
    var optionArray = ["|", "1bhk|1BHK", "2bhk|2BHK", "3bhk|3BHK", "4bhk|4BHK", "4+bhk|4+BHK"];
  }
  if (s1.valueOf == "Commercial") {
    var optionArray = ["|", "500sft|500SFT", "1000sft|1000SFT", "1500sft|1500SFT", "2000sft|2000SFT", "2500sft|2500SFT"];
  }

  for (var option in optionArray) {
    var pair = optionArray[option].split("|");
    var newOption = document.createElement("option");
    newOption.value = pair[0];
    newOption.innerHTML = pair[1];
    s2.options.add(newOption);
  }
}

我無法弄清楚為什么未調用該函數。

為了進行第二次檢查,您使用的是s1.valueOf而不是s1.value

您的功能將是

function populate(s1, s2) {
     var s1 = document.getElementById(s1);
     var s2 = document.getElementById(s2);
     s2.innerHTML = "";
     if (s1.value == "Residential") {
          var optionArray = ["|", "1bhk|1BHK", "2bhk|2BHK", "3bhk|3BHK", "4bhk|4BHK", "4+bhk|4+BHK"];
      }
      if (s1.value == "Commercial") {
          var optionArray = ["|", "500sft|500SFT", "1000sft|1000SFT", "1500sft|1500SFT", "2000sft|2000SFT", "2500sft|2500SFT"];
      }

      for (var option in optionArray) {
          var pair = optionArray[option].split("|");
          var newOption = document.createElement("option");
          newOption.value = pair[0];
          newOption.innerHTML = pair[1];
          s2.options.add(newOption);
      }   
   }

這對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM