2013-05-09 3 views
2

나는 두 개의 입력 필드와 값을 가지고있다. 이것은 사용자에게 투영됩니다. 사용자가이 값을 수정하여 제출할 수 있습니다. 제출되면 입력란이 수정되었는지 확인해야합니다.수정 된 입력 필드를 찾는 방법은 무엇입니까?

나는 이전 필드와 현재 필드를 비교하고 확인할 수 있습니다. 하지만이 일을 더 최적화 된 방법을 찾으려고 노력하고 있습니다. 자바 스크립트, PHP, jquery, html 트릭을 사용할 수 있습니다.

+1

같은 기본 값과 비교할 수 있을까? 언제부터? 데이터베이스에 저장된 값이나 다른 것과 다른 의미입니까? –

+0

^^^ +1 DB에서 클라이언트 측 변경 또는 데이터 변경을 의미합니까? – ExceptionLimeCat

답변

5
<input id="input1" value="someValue" type="text"> 
<input id="input2" value="someValue" type="text"> 

스크립트 :

$('input').on('change',function(){ 
    var id = $(this).attr('id'); 
    alert("input field is modified : ID = " + id); 
}); 
+0

대단히 감사합니다. 이것은 내가 찾고 있었던 바로 그 것이다. 다시 한번 감사드립니다. – Jithu

+0

당신은 환영합니다! –

0

코드를 입력하지 않았으므로 입력 된 내용과 현재 입력 된 내용을 비교할 수 있습니다.

HTML 입력 :

<input type="text" id="testInput" value="DB Value"/> 

jQuery를

var modifiedInputs = []; 
var oldVal = ""; 

$("#testInput").focus(function() { 
    oldVal = this.value; 
}).blur(function() { 
    console.log("Old value: " + oldVal + ". New value: " + this.value); 

    //If different value, add to array: 
    if (this.value != oldVal) { 
     modifiedInputs.push(this.id); 
    } 
}); 

바이올린 : http://jsfiddle.net/tymeJV/tfmVk/1/

편집 : 툭 그것을 변경 값이 다른 경우, 입력의 변형 예에있어서, 단계, 원래의 경우 요소 ID를 배열에 푸시합니다.

1

당신은 originalVal 모든 입력을 볼 수 1과 같은 클래스와 숨겨진 2 개의 다른 입력, 하나를 만들 수 있습니다.

그런 다음에 당신이 그런 짓을 제출

$('input').each(function(){ 
    var currentVal = $(this).val(); 
    var originalVal = $(this).closest('.originalVal').val() 
    if(currentVal != originalVal){ 
      //This input has changed 
    } 
}) 
+0

하지만 그는 말했다 ... "나는 이전 필드와 현재 필드를 비교하고 검사 할 수 있지만 이것을 최적화하는 방법을 찾으려고 노력하고 있습니다. 자바 스크립트, PHP, jquery 및 html 트릭을 사용할 수 있습니다." – FloatingCoder

+0

글쎄 거기에 '.change' 이벤트를 사용하면 (자), 값을 변경했을 때에 방아쇠를 당기지 만, 이전의 값으로 되돌릴 경우, 입력이 변경되지 않았더라도 변경된 것으로 간주됩니다. 내 의견으로는, 이것은 최적화 된 방법이며 나는이 일을하는 그의 첫 번째 방법이 올바른 것인지 확인합니다 ... –

0

내가 가장 좋은 건 입력 필드에서 초기 값을 얻을 수있을 것이다라고 한 다음 나중에 그들을 비교할 것입니다. 그런 다음 제출 버튼을 클릭하면 비교를 수행합니다. 예를 들어, $ (document) .ready() 어딘가에이 값을 넣으면 초기 값을 가져옵니다.

var oldValue=[]; 
$('input').each(function(){ 
    oldValue.push($(this).val()); 
}); 

그런 다음 제출을 클릭하면 나중에 비교할 수 있습니다.

0

당신은 당신이 정확하게 수정에 의해 의미합니까 어떤이

for(var i in formObj) 
    if('value' in formObj[i] && formObj[i].value!=formObj[i].defaultValue){ 
     //do what ever here ... 
    } 
관련 문제