2011-12-02 94 views
0

我有这些看法以选中复选框动态值的名称使用jQuery MVC3

厂景

@if (@Model.QuestionType == 3) 
{ 
<div data-role="fieldcontain"> 
    @using (Html.BeginForm("SaveCheckbox", "GetQuestion", Model)) 
    { 
     @Html.AntiForgeryToken() 
     <fieldset data-role="controlgroup" id="@(Model.QuestionNo)_fld"> 
      <label class="select">@Model.QuestionText 
      </label> 
      <br /> 
      @foreach (var item in Model.Options) 
      { 
       if (@item.IsAnswer == true) 
       { 
       <input type="checkbox" checked="checked" name="selectedObjects" id="@(Model.QuestionNo)[email protected](item.OptionNumber)_chk" value="@item.OptionNumber" class="custom" /> 
       } 
       else 
       { 
       <input type="checkbox" name="selectedObjects" id="@(Model.QuestionNo)[email protected](item.OptionNumber)_chk" value="@item.OptionNumber" class="custom" /> 
       } 
       <label for="@(Model.QuestionNo)[email protected](item.OptionNumber)_chk"> 
        @item.OptionText</label> 
      } 
      <br /> 
     </fieldset> 
     <p> 
      <input type="submit" id="@(Model.QuestionNo)_chk" onclick="return SaveCheckBoxNew(this);" value="Next" /> 
     </p> 
    } 
</div> 
    } 

    @if (@Model.QuestionType == 4) 
    { 
    <div data-role="fieldcontain"> 
    @using (Html.BeginForm("SaveCheckBoxTextInput", "GetQuestion", Model)) 
    { 
     @Html.AntiForgeryToken() 
     <fieldset data-role="controlgroup" id="@(Model.QuestionNo)_fld"> 
      <label id="l3" for="select-choice-1" class="select">@Model.QuestionText 
      </label> 
      <br /> 
      @foreach (var item in Model.Options) 
      { 

       if (@item.IsAnswer == true) 
       { 
        if (@item.OptionText == "Other") 
        { 
       <input type="checkbox" checked="checked" name="selectedObjects" questionid="@Model.QuestionNo" other="true" id="@(Model.QuestionNo)[email protected](item.OptionNumber)_chk" value="@item.OptionNumber" onchange="selectCheckbox(this);" /> 
       <input type="text" value="@item.Answer" name="selectedObjects" id="@(Model.QuestionNo)_chktxt"/> 
        } 
        else 
        { 
       <input type="checkbox" checked="checked" name="selectedObjects" questionid="@Model.QuestionNo" other="false" id="@(Model.QuestionNo)[email protected](item.OptionNumber)_chk" value="@item.OptionNumber" onchange="selectCheckbox(this);" /> 
        } 
       } 
       else 
       { 
        if (@item.OptionText == "Other") 
        { 
       <input type="checkbox" name="selectedObjects" questionid="@Model.QuestionNo" other="true" id="@(Model.QuestionNo)[email protected](item.OptionNumber)_chk" value="@item.OptionNumber" onchange="selectCheckbox(this);" /> 
       <input type="text" name="selectedObjects" id="@(Model.QuestionNo)_chktxt" style="display: none;" /> 
        } 
        else 
        { 
       <input type="checkbox" name="selectedObjects" questionid="@Model.QuestionNo" other="false" id="@(Model.QuestionNo)[email protected](item.OptionNumber)_chk" value="@item.OptionNumber" onchange="selectCheckbox(this);" /> 
        } 
       } 

       <label for="@(Model.QuestionNo)[email protected](item.OptionNumber)_chk"> 
        @item.OptionText</label> 
      } 
      <br /> 
     </fieldset> 
     <p> 
      <input type="submit" id="@(Model.QuestionNo)__chktxtinput" value="Next" onclick="return validateCheckBoxTextInput(this);" /> 
     </p> 
    } 
</div> 
} 

我渲染根据问题类型相同的观点。 所以我写了独立的JavaScript这样两种:

为1:

function SaveCheckBoxNew(button) { 
    alert($('input:checkbox[name=selectedObjects]:checked').val()); 
} 

为2:

function validateCheckBoxTextInput(button){ 
alert($('input:checkbox[name=selectedObjects]:checked').val()); 
} 

所以,如果我没有在第二视图检查所有复选框是显示与第一个视图中选定的值相同的值。

如果在第二个选中的对象未被清除的情况下未选中任何复选框,那么我必须得到空值。

我该如何解决这个问题? 在此先感谢您的帮助。

回答

0

尝试

$(this).closest("input:checkbox[name=selectedObjects]:checked").val()); 
+0

对不起,我粘贴错误的代码。我编辑。实际上它是:复选框 – Chakradhar

+0

@Chakradhar更新了答案 – Rafay

0

我不知道,如果你的语法是正确的。我用的复选框是这样的:

$('#selectedObjects').is(':checked') 

这通常适用于我。也许语法不是问题,但你可以测试这...

+0

即使他们被检查,它总是返回false。 – Chakradhar

相关问题