2013-10-06 2 views
0

Пожалуйста, помогите мне как можно скорее.Скрытое поле в нескольких формах в виде бритвы

Я использую вкладки jquery, и для каждой вкладки у меня есть другая форма, поэтому у меня есть несколько форм на странице. У меня также есть скрытый идентификатор поля на странице, который у меня есть вне всех форм. Теперь, когда я отправляю форму, скрытое поле становится нулевым в контроллере. Почему это происходит, когда я устанавливаю значение в скрытое поле при выборе автозаполнения. Когда пользователь выбирает значение из списка автозаполнения, я устанавливаю значение в скрытое поле. Я хочу сказать, что скрытое поле не пусто, когда я проверяю щелчок кнопки отправки, я проверил его с предупреждением, а скрытое поле показывает значение, но в контроллер, что скрытое поле становится пустым. Это первый метод, который я пробовал. На самом деле, я хочу сохранить скрытое поле глобальным beacause при сохранении каждой формы, мне нужно, чтобы это скрытое поле привело к тому, что идентификатор должен быть сохранен в каждой таблице, которая принадлежит каждой форме. Модель такая же для полной страницы.

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}) 
    } 

ответ

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 для добавления скрытого поля, на которое была нажата любая форма.

Update

$('formID').submit(function(){ 
    $(this).append($('#hiddenID')); // should append your hidden field to whatever form is being submitted. 
}); 
+0

Сэр, если я держать скрытое поле в форме, то avaialable в контроллере только для первой формы. Нет проблем, после того как я получу его в контроллере, я снова отправлю его значение в ответ json и снова установит его значение. Если я снова устанавливаю его значение, то он снова возвращается к нулю для второго представления формы, и это может быть из-за его объема только в первой форме. Просьба уточнить, могу ли я использовать одно и то же скрытое поле во всех формах? и установить его значение после ответа json и можете использовать снова в другой форме submit? – Sandy

+0

Да, вы должны уметь помещать скрытое поле внутри каждой формы. Вы используете jQuery? – Trevor

+0

На самом деле, я просто хочу установить скрытое поле значением, которое может сохранять одно и то же значение для каждого сообщения Submit из каждой формы. – Sandy

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