2016-10-20 3 views
0

Я не знаю, почему код во втором цикле if не работает. Он должен проверить строку текстовой области для «[" char и заменить ее.JQuery не заменит текст в textarea

$(function() { 
    $('#form').on('submit',function(){ 
    if ($('#pzad').is(':checked')){ 
    var text = $('#mytextarea').val(); 
    if (text.indexOf('[')>-1 || text.indexOf(']')>-1){ 
     $('#mytextarea').val().replace('[',''); 
     $('#mytextarea').val().replace('[',''); 
    } 
    $('#mytextarea').val('['+$('#mytextarea').val()+']'); 
    }}); 
}); 
+0

Он работает, просто по-другому, чем вы думаете. replace не изменяет исходную строку, а _returns_ измененное значение, поэтому вам нужно что-то сделать с этим возвращаемым значением. – CBroe

ответ

2

Как .replace() возвращает новую строку, Вы должны обновить textarea текст.

var newstr = $('#mytextarea').val().replace('[',''); 
$('#mytextarea').val(newstr); 

Вы можете использовать .val(fn)

$('#mytextarea').val(function(_,currentValue){ 
    return currentValue.replace('[',''); 
}); 
Смежные вопросы