는 ASP.Net MVC3 (C#을) 응용 프로그램에서이 HTML있어 "확인"라디오 버튼이 체크 렌더링하지
<div class="row-fluid">
<div class="span4">
<label for="MailPrefBusi">Business Street</label>
<input type="radio" checked="checked" class="validate[groupRequired[MailingPreference]] MailingPreference"
parent_tab="tab4" id="MailPrefBusi" name="MailingPreference" value="1">
</div>
<div class="span4">
<label for="MailPrefBusiPO">Business PO</label>
<input type="radio" class="validate[groupRequired[MailingPreference]] MailingPreference"
parent_tab="tab4" id="MailPrefBusiPO" name="MailingPreference" value="0" disabled="disabled">
</div>
<div class="span4">
<label for="MailPrefHome">Home</label>
<input type="radio" class="validate[groupRequired[MailingPreference]] MailingPreference"
parent_tab="tab4" id="MailPrefHome" name="MailingPreference" value="2">
</div>
</div>
을하지만 브라우저에서 볼 수, FF, IE9, IE8과 크롬 , MailPrefBusi 라디오가 표시되어 있지 않습니다.
<div class="row-fluid">
@{
String busipref = "";
String popref = "";
String homepref = "";
switch (ViewBag.part.MailingPreference)
{
case 1:
busipref = "checked=\"checked\"";
break;
case 0:
popref = "checked=\"checked\"";
break;
case 2:
homepref = "checked=\"checked\"";
break;
}
}
<div class="span4">
<label for="MailPrefBusi">Business Street</label>
<input type="radio" value="1" name="MailingPreference" id="MailPrefBusi"
parent_tab="tab4" class="validate[groupRequired[MailingPreference]] MailingPreference" @Html.Raw(busipref) />
</div>
<div class="span4">
<label for="MailPrefBusiPO">Business PO</label>
<input type="radio" value="0" name="MailingPreference" id="MailPrefBusiPO"
parent_tab="tab4" class="validate[groupRequired[MailingPreference]] MailingPreference" @Html.Raw(popref) />
</div>
<div class="span4">
<label for="MailPrefHome">Home</label>
<input type="radio" value="2" name="MailingPreference" id="MailPrefHome"
parent_tab="tab4" class="validate[groupRequired[MailingPreference]] MailingPreference" @Html.Raw(homepref) />
</div>
</div>
는 또한이 jQuery 코드가 있습니다 :
if ($("#BusinessAddress1").val() == "") {
$("#MailPrefBusi").attr('checked', false);
$("#MailPrefBusi").attr('disabled', true);
} else {
$("#MailPrefBusi").attr('disabled', false);
if ($("#MailPrefBusi").attr('checked')) {
$("#MailPrefBusi").attr('checked', 'checked');
}
}
if ($("#HomeAddress1").val() == "") {
$("#MailPrefHome").attr('checked', false);
$("#MailPrefHome").attr('disabled', true);
} else {
$("#MailPrefHome").attr('disabled', false);
if ($("#MailPrefHome").attr('checked')) {
$("#MailPrefHome").attr('checked', 'checked');
}
}
if ($("#POAddress1").val() == "") {
$("#MailPrefBusiPO").attr('checked', false);
$("#MailPrefBusiPO").attr('disabled', true);
} else {
$("#MailPrefBusiPO").attr('disabled', false);
if ($("#MailPrefBusiPO").attr('checked')) {
$("#MailPrefBusiPO").attr('checked', 'checked');
}
}
을하지만 여전히 체크 표시되지 않습니다
다음은 HTML을 생성하는 코드입니다. 이것은이 양식의 매우 중요한 부분이며이 라디오 그룹은 최소한 하나의 항목을 확인해야합니다. 사용자가 체크 표시되지 않으면, 사용자의 MailingPreference가 빈 주소가있는 값으로 수정 된 인스턴스를 가지고 있기 때문에 값이 올바르게 전송되는지 확신 할 수 없습니다.유효성 검사는 jQuery ValidationEngine을 사용하여 수행됩니다.
정확히 무슨 일이 일어나고 있는지 잘 모르겠습니다. 나는 대답을 찾기 위해 높고 낮게 찾았지만 공백이 오지 만 내가 시도한 모든 것은 같은 결과를 낳는다.
사용의 jQuery .prop() 함수를 : HTTP ://api.jquery.com/prop/ –
여전히 차이가 있다고 생각하지 않습니다. – MB34
@Hanlet Escañ0 - .prop()를 사용하기로 변경하고 작동했습니다. 감사합니다. – MB34