2010-12-09 3 views
0

숫자로 정의 된 jqgrid의 열이 있습니다. 사용자는 쉼표 delimeter가 포인트 인 6.5와 같은 숫자를 입력해야합니다. 이 그리드는 쉼표를 delimeter로 사용하여이 6,5와 같은 숫자를 삽입하는 데 사용되는 독일어 사용자가 사용합니다. 그들은 6,5 대신 6.5으로 삽입 할 수 없습니다 때jqgrid - 숫자 검사를 우회하는 방법

이 사람들은 화가 점점 : D

내가 변환하는 방법을 찾고 있어요 자신의 (그리고 결국) 내 삶을 더 편리하게하기 위해 자동적으로 6,5에서 6.5. 이것은 jqgrid num 검사에 의존하기 때문에 클라이언트 측에서 수행해야합니다.

따라서 jqgrid가 확인하기 전에 번호를 확인하고 변환해야합니다. 이것이 가능합니까?

- 편집자 -

첫 번째 것을 제외하고는이 함수를 호출하지 않습니다. 이것이 왜 이유 일 수 있습니까?

--edit2--

afterInsertRow:function (rowid, aData){ 
       alert('fire'); 

      }, 
    beforeSaveCell : function(rowid,celname,value,iRow,iCol){ 
       alert('no fire'); 
       return "new value"; 

     }, 
    beforeSubmitCell : function(rowid,celname,value,iRow,iCol){ 
       alert('no fire2'); 
       return "new value"; 

     }, 
    beforeEditCell : function(rowid,celname,value,iRow,iCol){ 
       alert('no fire3'); 
       return "new value"; 

     }, 

내가 인라인 편집을 위해 사용하고 코드입니다.

onSelectRow: function(row_id){ 
if(row_id != null) { 
    var date_str = jQuery('#grid').getCell(row_id, 'date_str'); 
    //var sum = jQuery('#grid').getCell(row_id, 'sum'); 
    var description = jQuery('#grid').getCell(row_id, 'description'); 
    if(date_str != "Total"){ 
     if(row_id !== last_selected_row) { 
      if(row_id == -99){ 
       //thats the first click of the user after initial load of the grid 
       jQuery('#grid').jqGrid('saveRow',row_id) 
        .editRow(row_id, true,true,reload); 
       last_selected_row = row_id; 
         } 
      else{ 
       //after user jumps from one cell to another using the mouse 
       jQuery('#grid').jqGrid('saveRow',last_selected_row,reload); 
       jQuery('#grid').jqGrid('restoreRow',last_selected_row); 
       last_selected_row = row_id; 
      } 
     } else { 
      jQuery('#grid').jqGrid('saveRow',row_id) 
       .editRow(row_id, true,true,reload); 
      last_selected_row=row_id; 
        } 
      } 
     } 

},

+0

** ** 사용자가 번호를 입력 한 곳을 삭제할 수 있습니까? 검색 (하나), 양식/인라인/셀 에디팅, 새 행 추가 또는 다른 것을 추가 하시겠습니까? – Oleg

+0

사용자가 셀에 숫자를 입력 할 때. -> 따라서 세포 편집 –

답변

1

당신이 셀 편집을 사용하는 경우, 당신이 필요로하는 텍스트를 교체 할 당신의 beforeSaveCell 이벤트 핸들러를 작성하려고 할 수 있습니다.

업데이트] : 나는 셀에 배치 할 수있는 정보 모르겠지만, 아마 Masked Input Plugin의 사용은 사용자 경험을 개선 할 수있는하거나 '키를 누를 때'필터링 (another answer 참조) (옛 대답 here 참조).

+0

고마워, 내가 생각했던 것 같아. 그러나 어떤 이유로이 사건은 발생하지 않습니다. 방법을 사용한 방법에 대한 내 질문에 삽입 한 스 니펫을 참조하십시오. –

+0

@ Tom Tom : 작은 코드 조각 만 게시했지만 올바른 장소에서 함수를 사용하는지 여부와 다른 중요한 jqGrid 설정을 사용하는지 여부는 명확하지 않습니다. 따라서 일부 코드가 작동하지 않는 경우 문제를 재현하는 데 사용할 수있는 ** 전체 ** 코드를 게시해야합니다. 그런 다음 나 또는 다른 누군가가 문제를 재현하여 해결할 수 있습니다. – Oleg

+0

http://pastebin.com/9ayXw1v5 .. 네 말이 맞아. 너무 길기 때문에 완전한 코드를 가진 pastebin을 만들었습니다. –

관련 문제