2017-07-26 137 views
0

我們有一個用戶信息表格,其中包括要求用戶的地址國家(dropdownlist1),用戶的電話號碼國家(dropdownlist2)和傳真號碼國家(dropdownlist3)。我們希望進行表格更新,以便當用戶選擇他們的地址國家(1)時,其他兩個國家下拉列表(2 & 3)更新到第一個列表的選定國家。基於另一個下拉列表的選擇更改一個下拉列表的選定值

我們的網站是一個C#MVC網站。

窗體上的現有代碼(來自我們的實施夥伴)使用腳本更新字段(它不成功 - 它們只是變爲空白)。

在視圖CSHTML文件:

$(function() { 

    $('#Country').change(function() { 
     var $country = $(this); 
     var country = $country.val(); 

     var selectedValues = new Array(); 
     selectedValues[0] = country; 
     selectedValues[1] = country; 

     $('#PhoneCountry').val(selectedValues); 
     $('#FaxCountry').val(selectedValues); 

    }); 

}); 

我知道腳本本身運行 - 也有一些其他組件它,我已刪除簡化腳本來問這個問題,而這些部件按預期工作。

我們所面臨的挑戰之一是地址國家的第一個下拉列表的國家名稱既是價值也是文本,而電話和傳真下拉列表則使用GUID作爲價值,國家則作爲文本。就我所知,我們需要使用SelectedText值來嘗試更改兩個手機下拉列表,但我無法弄清楚它的工作原理。

我試過排列組合,包括

var selectedText = country;
$('#PhoneCountry')。SelectedText(selectedText);

and

var selectedText = country;
$('#PhoneCountry')。val(selectedText);

哪個失敗。

我甚至已經將各種選項硬編碼到腳本中,試圖找出哪些信息組合會成功更新兩個手機下拉列表,但即使這樣也失敗了。

任何意見/輸入將不勝感激!

回答

0

只是一個例子。你可以根據你的項目修改這個。使用jquery。

$('#dropdownstate').change(function() { 

var collectoinPointUrl = ROOT + "Controllername/actionmethod" 
var StateId = $('#dropdownstate').val(); 
$.ajax({ 
    url: collectoinPointUrl, 
    data: { StateId: StateId }, 
    dataType: "json", 
    traditional: true, 
    success: function (result) { 
     $('#dropdowncompany').empty(); 
     $('#dropdowncompany').append("<option value=''>--Select--</option>"); 
     $.each(result.CompanyList, function (key, value) { 
      $('#dropdowncompany').append($("<option></option>").val(value.Value).html(value.Text)); 
     }); 
    } 
}); 

});

所以這裏關於狀態下拉的變化得到選定的值。將該值發送給控制器以獲取相應的公司值。從控制器返回conpanylist。然後將其附加到公司dropdrown列表。希望這會有所幫助。

0

我與@Tonmoy Saha提出的建議一起工作,但無法實現 - 很可能是我自己的錯(C#的新手)。由於數據庫導入要求,第一個下拉菜單必須以國家代碼(名稱)和兩個電話下拉菜單作爲GUID提交值。

所以我的解決方案是向接受文本值的表單添加一個隱藏字段,然後使用控制器中的更新腳本使用原始下拉字段中的拆分文本值更新該字段。我使用隱藏字段來更新控制器並將其提交給數據庫進行提交。

因此,代碼更新看起來是這樣的:

$(function() { 

    $('#Country').change(function() { 
     var $country = $(this); 
     var country = $country.val(); 
     var country = $("#Country option:selected").text(); 
     var countryguid = $country.val(); 

     if (country == '') { 
      $('#states-container').html(''); 
      return; 
     } 

     $('#PhoneCountry').val(countryguid); 
     $('#FaxCountry').val(countryguid); 
     $('#AddressCountry').val(country) 
相關問題