如果文本尚未输入,则JS添加文本

时间:2015-12-15 13:41:37

标签: javascript jquery if-statement

我正试图点击一个按钮,将一个字段的数据添加到另一个字段,如果它已经存在,我认为我很接近,但在我的例子中,如果我的'else if'解析,第二次点击也会使我的'else'解析。我不能完全理解这一点。

events.js:141
      throw er; // Unhandled 'error' event
      ^
Error: spawn /Users/user/Documents/Projects/project-x/node_modules/gifsicle/vendor/gifsicle ENOENT
    at exports._errnoException (util.js:874:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32)
    at onErrorNT (internal/child_process.js:344:16)
    at doNTCallback2 (node.js:441:9)
    at process._tickCallback (node.js:355:17)
c12320:project-x user$ 

我也设置了一个小提琴: http://jsfiddle.net/sheferd/bq9o57fg/1/

由于

2 个答案:

答案 0 :(得分:3)

只需将成员ID与文本输入框的值进行比较。

var old_data; //will hold old data until it is reassigned

$('#test').click(function(){
  var replied = $('#en_replied').val();
  var mem_id = $('#enr_member_id').val();

  if (replied !== mem_id) {
    //set textbox value to mem_id
    old_data = $('#en_replied').val();
    alert('Old Data: '+old_data);
    $('#en_replied').val(mem_id);
  } else {
    //values already match
    alert('values match');
  }
});

JS Fiddle

如果您需要连续存储旧的#en_replied数据并使用它,您可以将旧数据更改为数组并检查值。有点像:

var old_data = [10,11,17,23];
var presentValue;

presentValue = old_data.indexOf(17); //returns 2

答案 1 :(得分:0)

我找到了一个我满意的解决方案,我确信我的js可以改进但这对我有用:

$('#test').click(function(){
    var replied = $('#en_replied');
    var mem_id = $('#enr_member_id').val();

var hasReplied = replied.val().split('|')

for(var i = 0; i < hasReplied.length; i++) {

    if(hasReplied[i] == mem_id){
    var hasId = true;
  };     
};

if(hasId !== true){
    replied_ids = replied.val() + '|' + mem_id;
};

    replied.val(replied_ids);

});

在这里制作了一个jsfiddle http://jsfiddle.net/bq9o57fg/6/