2014-12-04 3 views
0

У меня есть два поля, в которых второе поле имеет значение и любое значение, введенное в первом поле, добавляется ко второму значению. Теперь, когда он добавлен, и номер, введенный в первом поле, удаляется (стирается с обратным пространством), значение второго поля не возвращается к его исходному значению. Как мне это сделать? Кроме того, я не возражаю лучший способ приблизиться к onkeyup в этой ситуацииВозврат поля javascript к значению по умолчанию после onkeyup

Html:

First: <input type="text" id="vala" onkeyup="sum();" /> 
Second: <input type="text" id="valb" value="12" /> 

JS:

function sum() { 
var first = document.getElementById('vala').value; 
var second = document.getElementById('valb').value; 
var result = parseInt(first) + parseInt(second); 
if (!isNaN(result)) { 
    document.getElementById('valb').value = result; 
      } 
     } 

Работа скрипку представление: http://jsfiddle.net/wcvqby2g/

ответ

3

Я думаю, что вы ищете f или

function sum() { 
    var first = document.getElementById('vala').value; 
    var second = document.getElementById('valb').defaultValue; 
    var result = (parseInt(first) || 0) + parseInt(second); 
    document.getElementById('valb').value = result; 
} 

, где defaultValue property of the input доступ исходное значение на входе, то есть от указанного в атрибуте value.

(updated fiddle)

+0

Мне нравится этот ответ, я не думал об использовании 'defaultValue'. Хороший, чистый и простой! –

+0

Мне нравится этот ответ. Очень чистый, как сказал @HowardRenollet – ollaollu

2

Он был переписан ,

Вы можете сохранить исходное значение, как это:

First: <input type="text" id="vala" onkeyup="sum();" /> 
Second: <input type="text" id="valb" value="12" data-default-value="12" /> 

... и добавить к вашему JS:

else { 
    document.getElementById('valb').value = document.getElementById('valb').dataset.defaultValue; 
} 

Вот скрипка: http://jsfiddle.net/andunai/wcvqby2g/5/

Обратите внимание, что data-default-value становится dataset.defaultValue

+0

или же просто, как это, если значение не изменится. http://jsfiddle.net/1ektk0ar/ – zackify

+0

@HowardRenollet вправо, но zackify также предложил поместить значение внутри JS. Это тоже решение. –

0

это работает solution--

First: <input type="text" id="vala" onkeyup="sum();" /> 
Second: <input type="text" id="valb" value="12" /> 

<script> 
var second1=document.getElementById('valb').value; 
var first1=document.getElementById('vala').value; 
function sum() { 
var first = document.getElementById('vala').value; 
var second = document.getElementById('valb').value; 
var result = parseInt(first) + parseInt(second1); 
if (!isNaN(result)) { 
    document.getElementById('valb').value = result; 
      } 
      if(first == first1) 
      { 

      document.getElementById('valb').value= second1; 
      } 

     } 
     </script>