2013-08-01 3 views
0

CRUD 시스템과 같은 편집 기능입니다. 사용자가 항목을 한 번 클릭하거나 두 번 클릭하여 필드를 직접 필드로 변환하면 데이터 .. 문제는 내가 필드에 아무 것도 입력 할 수 있습니다 herejquery를 사용하여 사용자 입력이있는 문단을 편집하십시오.

, 내가 왜 궁금

데모 ...

HTML을

<li style="list-style:none">click here to edit</li> 
를 업데이트

내 아미고, 당신이 매번 당신은 그래서 당신은 정말 빨리 (농담)를 입력해야합니다를 선택하고 새로운 입력을 추가하는

$(document).ready(function(){ 

$('li').click(function(){ 
    $(this).html("<input id='input' type='text'>"); 
}); 

$('#input').blur(function(){ 
    var newVal = ('#input').val(); 
     $('li').text('newVal'); 
    }); 
}); 
+0

jEditable plugin? http://www.appelsiini.net/projects/jeditable/default.html – tonoslfx

+0

이렇게하면 이런 일을 할 수있는 좋은 플러그인입니다. 그것이 당신의 목적에 맞는 지 살펴보십시오. http://vitalets.github.io/x-editable/index.html – azzy81

+0

@tonoslfx 그는 거의 작동하고 있는데 왜 html5 contenteditable을 사용하면 플러그인으로 모든 것을 부 풀릴 수 있습니까? – Parrotmaster

답변

2

텍스트 필드를 클릭하면 'li'이 (가) 클릭되기도합니다. 따라서 기존 텍스트 필드를 클릭하면 새로운 텍스트 필드가 추가됩니다. http://jsfiddle.net/DNmNE/5/

그리고 코드 :

$(document).ready(function(){ 
    $('li').click(function(){ 
     input = $("<input id='input' type='text'>").blur(function(){ 
      $('.editable').removeClass('editable'); 
      var newVal = $(this).val(); 
      $('li').text(newVal); 
     }); 
     if (!$(this).hasClass('editable')) 
      $(this).addClass('editable').html(input); 
    }); 
    }); 

가 나는 텍스트 필드가 이미 열려있는 경우 감지 할 .editable 클래스를 사용 여기

는 작업 바이올린입니다.

+0

'input = $ (""도 추가하십시오. ... '를 코드에 추가하십시오. – Stano

+0

@Stano 적어도 왜 그런지 ... – Parrotmaster

+0

a) 입력은 변수입니까? –

1

잘 JQuery와. 하지만 그게 문제 야. 리 클릭 기능이 느슨합니다.

0

그냥 생각했지만 HTML5contenteditable 기능을 사용 해본 적이 있습니까?

http://html5demos.com/contenteditable

물론, 오래된 브라우저에서 작동하지 않을,하지만 당신은 그 관심을하지 않는 경우 응용 프로그램이 성장함에 따라 그것은 당신에게 많은 작업을 절약 할 수 있습니다.

+0

contenteditable은 매우 좋지만 localstorage를 사용합니다. – Parrotmaster

+0

왜 그런가요? 왜 그것이 * 문제 일 수있는 것이 아니라 왜 Nurul의 예에서 왜 문제가 될 것인가? –

+0

제 전체 프로젝트가 거의 jquery에 있습니다. HTML5의 contenteditable과 비슷한 내용이 jquery에서 수행 될 수 있습니까? 또는 아마도 사용자 정의 논리? –

관련 문제