Javascript onchange 이전 값 - Javascript onchange ijeon gabs

페이지가로드 될 때 텍스트 상자와 값이 채워져 있습니다. 이제 사용자가 텍스트 상자에서 어떤 것을 변경하면 변경된 값 (새 값)과 이전 값을 얻고 싶지만 ELEMENT.value를 수행하면 변경된 값만 제공됩니다.

Show

    오래된 가치를 얻기위한 제안?

    아래는 내 코드입니다

    <head> <script type="text/javascript"> function onChangeTest(changeVal) { alert("Value is " + changeVal.value); } </script> </head> <body> <form> <div> <input type="text" id="test" value ="ABS" onchange="onChangeTest(this)"> </div> </form> </body> </html>

    미리 감사드립니다



    답변

    element.defaultValue 당신에게 원래의 가치를 줄 것입니다.

    이것은 초기 값에서만 작동합니다.

    변경 될 때마다 “이전”값을 유지하기 위해이 값이 필요한 경우 expando 속성 또는 유사한 방법이 요구 사항을 충족합니다.


    답변

    이전 값을 수동으로 저장해야합니다. 다양한 방법으로 저장할 수 있습니다. 자바 스크립트 객체를 사용하여 각 텍스트 상자에 대한 값을 저장하거나 숨겨진 필드를 사용할 수 있습니다 (권장하지 않습니다-너무 html 무거움). 또는 다음과 같이 텍스트 상자 자체에 expando 속성을 사용할 수 있습니다.

    <input type="text" onfocus="this.oldvalue = this.value;" onchange="onChangeTest(this);this.oldvalue = this.value;" />

    그런 다음 변경 사항을 처리하는 자바 스크립트 함수는 다음과 같습니다.

    <script type="text/javascript"> function onChangeTest(textbox) { alert("Value is " + textbox.value + "\n" + "Old Value is " + textbox.oldvalue); } </script>


    답변

    내가 제안 할게:

    function onChange(field){ field.old=field.recent; field.recent=field.value; //we have available old value here; }


    답변

    HTML5 데이터 속성을 사용해야합니다. 자신 만의 속성을 만들고 그 안에 다른 값을 저장할 수 있습니다.


    답변

    내가 가끔 사용하는 더러운 속임수는 ‘name’속성에 변수를 숨기는 것입니다 (일반적으로 다른 용도로 사용하지 않음).

    select onFocus=(this.name=this.value) onChange=someFunction(this.name,this.value)><option...

    예기치 않게 이전 값과 새 값이 모두 제출됩니다. someFunction(oldValue,newValue)


    답변

    확실하지는 않지만이 논리가 작동 할 수도 있습니다.

    var d = 10; var prevDate = ""; var x = 0; var oldVal = ""; var func = function (d) { if (x == 0 && d != prevDate && prevDate == "") { oldVal = d; prevDate = d; } else if (x == 1 && prevDate != d) { oldVal = prevDate; prevDate = d; } console.log(oldVal); x = 1; }; /* ============================================ Try: func(2); func(3); func(4); */


    답변

    당신은 이것을 할 수 있습니다 : html 요소에 oldvalue 속성을 추가하고 사용자가 클릭 할 때 set oldvalue를 추가하십시오. 그런 다음 onchange 이벤트는 oldvalue를 사용합니다.

    <input type="text" id="test" value ="ABS" onchange="onChangeTest(this)" onclick="setoldvalue(this)" oldvalue=""> <script> function setoldvalue(element){ element.setAttribute("oldvalue",this.value); } function onChangeTest(element){ element.setAttribute("value",this.getAttribute("oldvalue")); } </script>