0

できるだけ早く私を助けてください。

私はjqueryタブを使用していますが、タブごとにフォームが異なるため、ページに複数のフォームがあります。また、すべてのフォームの外側にあるページに非表示のフィールド Id があります。フォームを送信すると、コントローラーで非表示のフィールドが null になります。オートコンプリートの選択時に非表示フィールドに値を設定しているため、なぜそれが起こっているのですか。ユーザーがオートコンプリート リストから値を選択すると、値が非表示フィールドに設定されます。つまり、送信ボタン クリックのクリックをチェックすると、非表示フィールドが空ではないということです。アラートでチェックすると、非表示フィールドに値が表示されますが、隠しフィールドが空になるコントローラー。これは私が試した最初の方法です。実際には、すべてのフォームの保存時に非表示フィールドをグローバルに保持したいのですが、

 FIRST Method:::
    <div id="PageContent"> 
        @Html.HiddenFieldfor(m=>m.fkID)
    <div id="tabs">
      <ul>
        <li><a href="#tabs-1">Nunc tincidunt</a></li>
        <li><a href="#tabs-2">Proin dolor</a></li>
        <li><a href="#tabs-3">Aenean lacinia</a></li>
      </ul>
      <div id="tabs-1">
    @using (Ajax.BeginForm("Evaluation","SaveTab1"{new AjaxOptions { Onsucess= "DisplayMessage" }))
    {

     <input type="Submit" id="btnTab1" value="Submit" onclick="CheckUser();"/>
    }

      </div>
      <div id="tabs-2">
    @using (Ajax.BeginForm("Evaluation","SaveTab2"{new AjaxOptions { Onsucess= "DisplayMessage" }))
    {
     <input type="Submit" id="btnTab2" value="Submit" />
    }
      </div>
      <div id="tabs-3">

    @using (Ajax.BeginForm("Evaluation","SaveTab3"{new AjaxOptions { Onsucess= "DisplayMessage" }))
    {
     <input type="Submit" id="btnTab3" value="Submit" />
    }
      </div>
    </div>


    </div> 
    <script type="text/javascript">

    </script>

    In the second One I placed hidden field in the form that is in the form of first tab.Now, I am getting the model value in the controller.but after the json response I tried to set the value on the success event , the value is coming but on the  submission of second form that hidden field is coming again empty. Please help me to solve this problem.

    <div id="tabs">
      <ul>
        <li><a href="#tabs-1">Nunc tincidunt</a></li>
        <li><a href="#tabs-2">Proin dolor</a></li>
        <li><a href="#tabs-3">Aenean lacinia</a></li>
      </ul>
      <div id="tabs-1">
    @using (Ajax.BeginForm("Evaluation","SaveTab1"{new AjaxOptions { Onsucess= "DisplayMessage" }))
    {
@Html.HiddenFieldfor(m=>m.fkID)
     <input type="Submit" id="btnTab1" value="Submit" onclick="CheckUser();"/>
    }

      </div>
      <div id="tabs-2">
    @using (Ajax.BeginForm("Evaluation","SaveTab2"{new AjaxOptions { Onsucess= "DisplayMessage" }))
    {
     <input type="Submit" id="btnTab2" value="Submit" />
    }
      </div>
      <div id="tabs-3">

    @using (Ajax.BeginForm("Evaluation","SaveTab3"{new AjaxOptions { Onsucess= "DisplayMessage" }))
    {
     <input type="Submit" id="btnTab3" value="Submit" />
    }
      </div>
    </div>


    </div> 
    <script type="text/javascript">
    function DisplayMessage(Json)
    {
    alert( $("#fkID").val(Json.hdn));
    and Alert is showing the value
     $("#fkID").val(Json.hdn);
    }
    </script>


    In the controller I have done::
    public ActionResult SaveTab1(Model obj)
    {
     tbl ob =new tbl();
    ob.FkId=Obj.fkID;
    after saving, I return
    return json(new{hdn=Obj.fkID})
    }
4

1 に答える 1

1

非表示フィールドはフォーム内にある必要があります。

@using (Ajax.BeginForm("Evaluation","SaveTab1"{new AjaxOptions { Onsucess= "DisplayMessage" }))
{
 @Html.HiddenFieldfor(m=>m.fkID)
 <input type="Submit" id="btnTab1" value="Submit" onclick="CheckUser();"/>
}

そうしないと、送信時に投稿されません。

非表示フィールドを各フォームに追加するか、jQuery を使用して、クリックされたフォームに非表示フィールドを追加することができます。

アップデート

 $('formID').submit(function(){
   $(this).append($('#hiddenID'));  // should append your hidden field to whatever form is being submitted.
 });
于 2013-10-06T05:12:19.843 に答える