내 MVC 작업에서 기존 데이터를 가져 오는 jQuery 자동 완성 필터가 있습니다. 필드에 입력 된 데이터가 데이터베이스에 아직 존재하지 않도록하고 싶습니다.필드를 강제로 오류 상태로 전환
필드를 class = "input-validation-error"로 설정하기 위해 자동 완성에서 .result 및 .change를 사용하여 thisworkig를 사용했습니다. xVal 클라이언트 검증을 추가하면 여전히 작동하지만 xVal은 css 클래스를 지우는 것처럼 보이므로 필드 항목이 잠깐 빨간색으로 바뀌어 배경이 지워집니다.
xVal 코드를 변경하려고 시도하는 대신 일반 클라이언트 데이터 유효성 검사 오류와 마찬가지로 필드를 오류 상태로 표시하기 위해 xVal 클라이언트 유효성 검사를 얻습니다.
어떻게하면됩니까? 자동 완성 .result 이벤트에서 xVal에서 오류 상태를 강제로 수행하는 데 사용할 수있는 코드는 무엇입니까?
업데이트 : 나는 Wyatt Barnett에서 아이디어를 시도했지만, 내 의견에서 알 수 있듯이 내가 원하는 것은 아닙니다. 여기에 내가 무엇을의 코드는 다음과 같습니다
필드 마크 업 :
<p>
<%= Html.LocalisedLabel("ProjectId") %>
<%= Html.TextBox("project.ProjectId") %>
<%= Html.ValidationMessage("project.ProjectId", "*") %>
</p>
경우 xval 태그 : 자동 완성에 대한
<%= Html.ClientSideValidation<ProjectBO>("project").UseValidationSummary("myValidationSummary") %>
<%= Html.ClientSideValidation<ProjectBO>("project").AddRule("ProjectId", new RemoteRule(Url.Action("ValidateProjectIdCreate", "LookUp", new { projectId = Model.ProjectId})))%>
자바 스크립트 태그 :
<script type="text/javascript">
$(document).ready(function() {
$('#project_ProjectId').autocomplete('<%= Url.Action("ProjectIdList", "LookUp") %>',
{
delay: 10,
minChars: 1,
matchCase: 0,
matchSubset: 1,
autoFill: false,
maxItemsToShow: 10,
cacheLength: 10
}
);
$('#project_ProjectId').result(function(item) {
if (item) {
//match
$('#project_ProjectId').attr("class", "input-validation-error");
}
else {
$('#project_ProjectId').removeAttr("class");
}
});
$('#project_ProjectId').change(function() {
$('#project_ProjectId').attr("class", "");
});
});
</script>
이 스크립트 나에게 처리 할 이벤트를 주지만 그 안에 무엇을 넣을 수 있습니까?
실제로 최신 버전입니다. 아약스 유효성 검사 장난감을 확인해야하는 것 같습니다. 가서 그걸 할거야 – Redeemed1
좋아, 나는 그것을 시도했지만 그것이 작동하는 동안 내가 뭘 원하는지하지 않습니다. 나는 캐싱과 사용자에게 제공하는 단서의 측면에서 꽤 효과가있는 분야에서 자동 완성을 사용합니다. 또한 xVal 원격 유효성 검사기는 입력 한 모든 문자의 서버로 돌아갑니다. 내가 원하는 것은 내 코드에서 해고되고 내 코드에서 삭제되는 유효성 검사기 (원격 호출이 아님)입니다. – Redeemed1
이 작업을 수행하기 위해 autocomplete.result 이벤트를 사용할 수는 있지만 그 시점에서 코드를 넣을 내용을 알지 못합니다. 오류 상태를 표시하는 대체 방법이 있지만 제출시 차단을 강요합니다 – Redeemed1