2015-07-03 3 views
0

Dropdown gets highlighted as shown on clicking the save buttonкнопку Отправить ведет прерывисто

Ниже сценарий утверждает, что, если Единый государственный выбран, то государство DDL будет только visible.Otherwise нет состояния не присутствуют в других странах.

$(document).ready(function() { 
     debugger; 
     var selectedStateText = $("#ddlState option:selected").text(); 
     var selectedState = $("#ddlState").val(); 
     if (selectedStateText == "") { 
      $('#divStateDropdown').hide(); 
      $('#divLabelState').hide(); 
     } 
     $("#ddlCountry").change(function() { 
      debugger; 
      var selectedCountryText = $("#ddlCountry option:selected").text(); 
      var selectedCountry = $("#ddlCountry").val(); 
      $("#selectedCountry").val(selectedCountryText) 

      if (selectedCountry == 69) { 
       $('#divLabelState').show(); 
       $('#divStateDropdown').show(); 
       GetStates(selectedCountry) 
      } 
      else { 
       $('#ddlState').empty(); 
       $('#divLabelState').hide(); 
       $('#divStateDropdown').hide(); 
      } 
     }) 
     $("#ddlState").change(function() { 
      debugger; 
      var selectedStateText = $("#ddlState option:selected").text(); 
      $("#selectedState").val(selectedStateText) 
     }) 

    }); 

    function GetStates(idd) 
    { 
     $.ajax({ 
      type: "POST", 
      url: "/UserRegistration/GetStates", 
      data: JSON.stringify({"id": idd}), 
      contentType: "application/json; charset=utf-8", 
      success: function (result) { 
       var stateslist = $('#ddlState'); 
       stateslist.empty(); 
       $(result).each(function() { 
        $(document.createElement('option')) 
        .attr('value', this.Id) 
        .text(this.Value) 
        .appendTo(stateslist); 
       }); 

      } 
     }); 
    }; 

    function updateDetails() { 
     debugger; 
     $('#btnUpdate').submit(); 
    } 
</script> 



@using (Html.BeginForm("UpdateProfile","UpdateProfile",FormMethod.Post,new {id="Update"})) 
    { 


       <div class="inputGroupStyle"> 

        <div style="width: 100%;padding-top:1%;"> 
         @Html.DropDownListFor(model => model.cCountry.CountryID, (SelectList)ViewBag.CountriesList, new { @id = "ddlCountry", style = "width:146px" }) 
         @Html.ValidationMessageFor(model => model.cCountry) 
         @Html.HiddenFor(model => model.cCountry.CountrySelected, new { @id="selectedCountry"}) 
        </div> 
        <div style="width: 100%;padding-top:1%;" id="divStateDropdown"> 
          @Html.DropDownListFor(model => model.cState.StateID, (SelectList)ViewBag.StatesList , new { @id = "ddlState", style = "width:146px;" }) 

         @Html.HiddenFor(model => model.cState.StateSelected, new { @id="selectedState"}) 
        </div> 
        <div style="width: 100%;padding-top:1%;"> 
         @Html.EditorFor(model => model.ZipCode) 
         @Html.ValidationMessageFor(model => model.ZipCode) 
        </div> 
        <div style="width: 100%;padding-top:1%;"> 
         @Html.TextBoxFor(model => model.Email, new { @class = "boxSizeEmailPwd-Reg col-xs-12" }) 
         @Html.ValidationMessageFor(model => model.Email) 
        </div> 
       </div> 
      </div> 
      <br /> 
      <div class="form-group"> 
       <div style="width: 100%; padding-left: 16%;"> 
        <input type="submit" id="btnUpdate" value="Save" name="command" onclick="updateDetails();"/> 

        <input type="submit" id="btnCancel" value="Cancel" name="command" class="cancel"/> 
       </div> 
      </div> 
      <div class="form-group"> 
       <div class="col-xs-offset-2 col-xs-10"> 
        <input type="submit" value="Create" class="btn btn-default" style="display: none;" /> 
       </div> 
      </div> 
     </div> 
    } 

Код контроллера. метод GetStates возвращает список состояний

[HttpPost] 
public JsonResult GetStates(string id) 
{ 
     cDTOSingleValue country = new cDTOSingleValue(); 
     List<cState> states = new List<cState>(); 
     List<SelectListItem> statesList = new List<SelectListItem>(); 
     inputCollection = new cDTOCollection<cDTOBase>(); 
     outputCollection = new cDTOCollection<cDTOBase>(); 
     country.Value = id; 
     inputCollection.Add(country); 
     outputCollection = RegBizobj.ProcessRequest(ActionConstants.ActionGetStateList,inputCollection); 
     foreach (cDTOState state in outputCollection) 
     { 
      states.Add(Mapper.Map<cDTOState,cState>(state)); 
      statesList.Add(new SelectListItem { Text = state.StateName, Value = state.StateName }); 
     } 
     ViewBag.StatesList = new SelectList(states, "StateID", "StateName"); 
     return Json(new SelectList(statesList, "Value", "Text"),JsonRequestBehavior.AllowGet); 
} 

Когда выбран Единый государственный Страна и соответствующее состояние, оно не показывает ожидаемое поведение по нажатию на кнопку сохранить

[HttpPost] 
public ActionResult UpdateProfile(UserRegistrationModel updateUserDetailsObject,string command) 
{ 
     return RedirectToAction("UserProfile", "Account", new { area = "UserManagement" }); 
} 

В приведенном выше сценарии, когда выбрана страна, кроме «Соединенных Штатов», функциональность кнопки «Сохранить» работает нормально. Если я выбираю страну, как Соединенные Штаты, а затем выберите государство, как и любые из данного выбора для, например: ГУАМ, при нажатии кнопки сохранения остановки функциональных кнопок и государственных DDL backgroundbecomes голубой

+0

у вас установить контрольные точки и шагнула через оба кода на стороне сервера и JavaScript? Какие существуют исключения? – user1666620

+0

Нет исключений, которые я вижу. Это просто дает мне выше изображение – Himani

+0

Похож на ошибку javascript. Когда вы проверяете консоль, появляются ли какие-либо ошибки? – user1666620

ответ

1

В форме ниже функции:

function updateDetails() { 
     $('#btnUpdate').submit(); 
} 

Вы пытаетесь представить button, а не form, что не имеет никакого смысла. #btnUpdate - idbutton, а не form. Поэтому вместо того, чтобы заменить "#btnUpdate" с "#Update", который является form id

function updateDetails() { 
     $('#Update').submit(); 
} 
+0

Почему он работает с другим случаем, например, когда выбрана любая другая страна, кроме «Соединенных Штатов»? – Himani

+0

Хорошо ответить, что вы используете ту же кнопку 'button' для отправки' form'? потому что я вижу еще одну кнопку 'submit' под названием' Create'! и поверьте мне, вы никогда не можете ** отправить кнопку **. –

+0

можно перейти к методу Post при применении «Обновить» id в функцию jquery. Но это останавливает работу проверки на стороне клиента. Раньше так мне пришлось адаптировать «btnUpdate». Есть ли способ обрабатывать валидации на стороне клиента в таких случаях? – Himani

Смежные вопросы