내 코드에 이상한 버그가 있습니다. 이름을 바꿀 항목의 동적 목록을 표시하는보기 페이지가 있습니다. 몇 가지 ID ints, 이전 이름 및 새 이름 가진 몇 가지 목록을 보유하는보기 모델이 있습니다. 보기에서 for 루프를 사용하여 각 항목에 대한 레이블과 텍스트 상자를 만듭니다. 또한 사용자가 해당 항목의 이름을 바꾸지 않도록 선택할 수있는 텍스트 상자 옆에 확인란이 있습니다. 이 확인란에는 텍스트 상자의 비활성화 된 속성을 토글하는 onclick가 있습니다.MVC - 첫 번째 문자열이 전환 된 텍스트 상자에있을 때 양식에서 문자열 목록을 제출하십시오.
<%for (int i = 0; i < Model.ChargeIds.Count; i++)
{ %>
<div style="clear:left; float:left; margin-right:10px">
<label><%=Model.OldChargeNames[i]%></label>
<div class="editor-field">
<%=Html.TextBoxFor(m => m.NewChargeNames[i])%>
<%=Html.CheckBoxFor(m => m.DoNotCopyFlags[i], new { onclick = "toggleElement('NewChargeNames_" + i + "_')" })%>
<label>Don't Copy</label>
</div>
</div>
<%} %>
<script type="text/javascript">
function toggleElement(element) {
document.getElementById(element).disabled = !document.getElementById(element).;
};
</script>
목록의 첫 번째 항목 옆에있는 확인란을 클릭하고 제출할 때까지 모든 것이 잘 작동합니다. 내 'NewChargeNames'목록이 null로 돌아옵니다. 다른 텍스트 상자 중 하나를 사용하지 않으면 첫 번째 텍스트 상자 만 비활성화됩니다. 내 토글 기능을 변경하여 텍스트 상자의 스타일을 다시 해제하여 비활성화 된 것으로 보았습니다. 이제는 정상적으로 작동합니다. 하지만이 버그가 왜 발생하는지 전혀 모릅니다. 아무도 빛을 낼 수 있습니까?
document.getElementById (element) .disabled =! document.getElementById (element) .; .disabled로 끝내기로되어 있습니다. –
네, 죄송합니다, 복사 및 붙여 넣기 작업이 잘못되었습니다 : ( – Joe