2017-01-14 2 views
0

다른 질문 (jqgrid editoptions custom_func with required=false)에서 주석을 달았으므로 이제 custom_func를 사용하여 입력의 유효성을 검사해야합니다. 이 유효성 검증은 사용자가 입력 한 다른 컬럼 값과 입력 값을 비교해야합니다. 즉, 제출 전에 모든 현재 행 값을 가져 와서 유효성 검사 결과를 결정해야합니다. 나는 Jqgrid custom_func 유효성 검사 및 모든 행 편집 값 가져 오기

function myCustomFunc(value, colName) { 
    //consider I have a global var "selRowId" which is updated onSelectRow event. 
    var someColValue = $('select#'+selRowId+'_someColName').val(); 
    // ... here the validation using the "someColValue" ... 
} 

가 나는 이것이 가장 좋은 방법은 아니라고 생각 ... 일부 특정 컬럼이 방법을 얻을 수 있었다. "getRowData"와 유사한 객체를 반환하지만 사용자의 모든 입력 값을 포함하는 메서드를 선호합니다.

내가있는 jqGrid 4.6.0

답변

1

을 사용하고 당신이 인라인 편집을 사용하는 것으로 보인다. 버전 4.6의 jqGrid에는 현재 값에 액세스 할 수있는 다른 방법이 없지만 현재 무료 jqGrid (GitHub의 예비 버전 4.13.7)에는 새로운 콜백 saveRowValidation과 구현하려는 항목을 단순화 할 수있는 jqGridInlineSaveRowValidation 이벤트가 포함되어 있습니다.

콜백 saveRowValidation에는 무료 jqGrid에 구현 된 대부분의 다른 콜백과 같은 하나의 매개 변수가 포함되어 있습니다. 수정과 객체 - 편집 행

  • newData의 id 속성의 값 - 매개 변수, 우리는 options 그것을 이름을 우리를 보자, 다음 속성을 값 "edit" 또는 "add"
  • rowid

    • mode을 포함 행의 데이터
    • savedRow - 편집 전 행의 데이터가있는 객체
    • options - 옵션 인라인 편집
    • iRow의의 - DOM 요소, 편집 행

    내가 options.newData는 당신이 필요하다고 생각을 표현 - 그리드

  • tr의 상단에서 행의 인덱스입니다. 자세한 내용은 the commit에 대한 설명을 참조하십시오.

  • +0

    saveRowValidation은 훌륭한 솔루션이라고 생각합니다. 무료 jqgrid의 새 버전을 구현하자마자 시도해 보겠습니다. 현재 버전은 4.13.6입니까? 또는 4.13.7? – Aberel

    +0

    @Aberel : 최신 * 출시 * 버전은 "4.13.6"(2016 년 12 월 24 일)입니다. 마지막 릴리스 이후에 코드의 첫 번째 변경 사항을 작성한 후에 버전 번호를 증가시킵니다 ("4.13.7-pre"로 변경). 콜백'saveRowValidation' (그리고 이벤트'jqGridInlineSaveRowValidation')은 2017 년 1 월 4 일 커밋되었습니다. 나는 보통 한 달 전에 새로운 버전을 발행합니다. 따라서 다음 "4.13.7"버전은 약 1 ~ 2 주 후에 발간 될 예정입니다. – Oleg