2017-01-21 3 views
0

У меня есть ниже сценарийCreateInput Javascript Dont позволяет пространство

// Add new record 
$(document).on("click","."+editbutton,function(){ 
    var id = $(this).attr("id"); 
    if(id && editing == 0 && tdediting == 0){ 
     // hide editing row, for the time being 
     $("."+table+" tr:nth-child(2)").fadeOut("fast"); 

     var html; 
     html += "<td>"+$("."+table+" tr[id="+id+"] td:first-child").html()+"</td>"; 
     for(i=0;i<columns.length;i++){ 
      // fetch value inside the TD and place as VALUE in input field 
      var val = 'landi doda'; 
      input = createInput(i,val); 
      html +='<td>'+input+'</td>'; 
     } 
     html += '<td><a href="javascript:;" id="'+id+'" class="'+updatebutton+'"><img src=""><img src="" class="eimage"> <span class="glyphicon glyphicon-save"></span></a> <a href="javascript:;" id="'+id+'" class="'+cancelbutton+'"><img src="" > <span class="glyphicon glyphicon-remove"></span></a></td>'; 

     // Before replacing the TR contents, make a copy so when user clicks on 
     trcopy = $("."+table+" tr[id="+id+"]").html(); 
     $("."+table+" tr[id="+id+"]").html(html); 

     // set editing flag 
     editing = 1; 
    } 
}); 

Если Допустима только одно слово без пробелов, то моя строка таблицы для редактирования заправить входы и она прекрасно работает.

Но моя проблема в том, когда у меня есть на валя одно слова, которое содержит пространство, то моя строку таблицы для редактирования заполнить только первое слово целого слова, оно не принимает пространств

Создания входной функции

createInput = function(i,str){ 
    str = typeof str !== 'undefined' ? str : null; 
    //alert(str); 
    if(inputType[i] == "text"){ 
     input = '<input type='+inputType[i]+' name='+columns[i]+' placeholder="'+placeholder[i]+'" value='+str+' >'; 
    }else if(inputType[i] == "textarea"){ 
     input = '<textarea name='+columns[i]+' placeholder="'+placeholder[i]+'">'+str+'</textarea>'; 
    } 
    else if(inputType[i] == "select"){ 
     input = '<select name='+columns[i]+'>'; 
     for(i=0;i<selectOpt.length;i++){ 
      //console.log(selectOpt[i]); 
      selected = ""; 
      if(str == selectOpt[i]) 
       selected = "selected"; 
      input += '<option value="'+selectOpt[i]+'" '+selected+'>'+selectOpt[i]+'</option>'; 
     } 
     input += '</select>'; 
     //console.log(str); 
    } 
    return input; 
} 
+0

Где это 'функция createInput'? опубликуйте его! Вероятно, он разделил значение и взял первый токен. –

+0

Я отредактировал взгляд выше –

+0

Предоставьте [mcve]. Демонстрация была бы очень полезной – charlietfl

ответ

0

Вы забыли процитировать str как вы сделали для заполнителя.

... placeholder="'+placeholder[i]+'" value='+str+' >'; 

должно быть:

... placeholder="'+placeholder[i]+'" value="'+str+'" >'; 
+0

wow great !!! hahahha спасибо –

+0

@RolandDova процитировать атрибут имени тоже! поэтому у вас тоже не будет проблем. –

+0

@ RolandDoda в самом деле. Все они должны быть указаны. –

Смежные вопросы