У меня есть эти представления
view1
@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)_@(item.OptionNumber)_chk" value="@item.OptionNumber" class="custom" />
}
else
{
<input type="checkbox" name="selectedObjects" id="@(Model.QuestionNo)_@(item.OptionNumber)_chk" value="@item.OptionNumber" class="custom" />
}
<label for="@(Model.QuestionNo)_@(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)_@(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)_@(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)_@(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)_@(item.OptionNumber)_chk" value="@item.OptionNumber" onchange="selectCheckbox(this);" />
}
}
<label for="@(Model.QuestionNo)_@(item.OptionNumber)_chk">
@item.OptionText</label>
}
<br />
</fieldset>
<p>
<input type="submit" id="@(Model.QuestionNo)__chktxtinput" value="Next" onclick="return validateCheckBoxTextInput(this);" />
</p>
}
</div>
}
Я отображаю то же представление на основе типов вопросов.Таким образом, я написал отдельные javascripts, как это для обоих:
Для 1:
function SaveCheckBoxNew(button) {
alert($('input:checkbox[name=selectedObjects]:checked').val());
}
Для 2:
function validateCheckBoxTextInput(button){
alert($('input:checkbox[name=selectedObjects]:checked').val());
}
Так что если я не поставлю галочку вво втором представлении отображается то же значение, которое было выбрано в первом представлении.
Мне нужно получить значение NULL, если во втором не установлен ни один флажок, почему выбранные имена объектов не очищаются.
Как мне это решить?Заранее благодарим за помощь.