2016-07-05 24 views
-1

ドロップダウンリストからオプションを選択した後、jqueryからテキストボックスを入力しようとしています。私はコードのいくつかの抜粋を含みます。MVCのドロップダウンリストからテキストボックスを入力

これはビューのマークアップです。に変更があったとき

<div class="form-group"> 
     @Html.LabelFor(model => model.DependantID, "DependantID", htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.DropDownList("DependantID", null, htmlAttributes: new { @class = "form-control", @onchange = "GetRegNo()" }) 
      @Html.ValidationMessageFor(model => model.DependantID, "", new { @class = "text-danger" }) 
     </div> 
    </div> 

    <div class="form-group"> 
     @Html.LabelFor(model => model.RegNo, htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @*@Html.EditorFor(model => model.RegNo, new { htmlAttributes = new { @class = "form-control" } })*@ 
      <span id="loading_progress1" style="display: none;">Please wait...</span> 
      @Html.TextBoxFor(model => model.RegNo, new { @Value = @ViewBag.Regno, @readonly = "readonly", @class = "form-control" }) 
      @*@Html.TextBoxFor(model => model.RegNo, new { @Value = Regno, @readonly = "readonly", @class = "form-control" })*@ 
      @Html.ValidationMessageFor(model => model.RegNo, "", new { @class = "text-danger" }) 
     </div> 
    </div> 

これは私が

function GetRegNo() { 
    var dependid = $('#DependantID').val(); 
    var dprogress = $('#loading_progress1'); 
    dprogress.show(); 
    //alert(schoolid); 
    $.ajax({ 
     cache: false, 
     //url: '@Url.Action("/Patients/FillClass")', 
     url: '/Patients/FillClass', 
     type: "GET", 
     datatype: "json", 
     data: { DependID: dependid }, 
     success: function (stud) { 
      $("#RegNo").html(""); ///clear entry before appending 
      $("#RegNo").html() = stud.regno; 
      alert("I reach here"); 
      alert("data.regno " + stud.regno); 
     //$.each(studi, function (i, stude) { 
     //$("#SClassID").append(
     //$('<option></option>').val(stude.SClassID).html(stude.Class)); 
     // }); 
     dprogress.hide(); 
     }, 
     error: function (response) { 
     alert("Error: " + response.responseText); 
     dprogress.hide(); 
     } 

    }); 

を達成するために期待していますjqueryのコードは、これは私のコードからコントローラだから、

[AcceptVerbs(HttpVerbs.Get)] 
    public ActionResult FillClass(int? dependid) 
    { 
     if (dependid == null) 
     { 
      return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
     } 
     string regno=""; 
     var N = db.Patients.Max(f => (int?)f.PatientID).GetValueOrDefault(0); 
     N++; 
     string Nt = Convert.ToString(N); 
     if (dependid == 1) 
     { 

      regno = "M" + Convert.ToString((DateTime.Now).ToString("yy")) + BizLogic.Right("00000" + Nt, 5); 
     } 
     else 
     { 

      regno = "D" + Convert.ToString((DateTime.Now).ToString("yy")) + BizLogic.Right("00000" + Nt, 5); 
     } 
     return Json(regno, JsonRequestBehavior.AllowGet); 
    } 

からですが、上記のスニペットドロップダウンリストのjavaが呼び出され、コントローラのメソッドが呼び出され、テキストボックスが埋められます。より良い方法があれば、私はすべて開いています。ありがとうございました。

+0

あなたはコードの束を投稿しました。それは働いていないのですか?あなたはあなたの質問に明確な問題の状態を持っていません。また、「JavaScript」は完全に異なるため、「Java」として決して参照するべきではありません。 – mason

+0

JavaとJavascriptに関する問題を修正してくれてありがとう。しかし、私は達成しようとしているものが見えるようにコードを掲載します。 –

+0

それはうまくいきません! –

答えて

0

jqueryスクリプトで問題が見つかりました。私は変更を掲示し、変更を指摘します。私の任務と関係がありました。私がここにマークした行は、値をテキストボックスに掲示します。

function GetRegNo() { 
    var dependid = $('#DependantID').val(); 
    var dprogress = $('#loading_progress1'); 
    dprogress.show(); 
    //alert(schoolid); 
    $.ajax({ 
     cache: false, 
     //url: '@Url.Action("/Patients/FillClass")', 
     url: '/Patients/FillClass', 
     type: "GET", 
     datatype: "json", 
     data: { DependID: dependid }, 
     success: function (stud) { 
      $("#RegNo").html(""); ///clear entry before appending 
    here: $('input#RegNo').val(stud); //i missed it here, changing to this changed solved the problem, compare with with script in the question 

     dprogress.hide(); 
     }, 
     error: function (response) { 
     alert("Error: " + response.responseText); 
     dprogress.hide(); 
     } 

    }); 
    } 
関連する問題