2012-06-13 2 views
0

Я сделал несколько Googling, но не смог получить эту работу. Мне нужно просмотреть все поля TEXT в моей форме и заменить все экземпляры «,» (запятая) на «& # 4 4;» (экранированная запятая).javascript заменить текст во всех полях формы при отправке

Вот форма тег:

<form name="buildcourse" id="buildcourse" action="target.htm" method="post" enctype="multipart/form-data" onsubmit="validateForm()"> 

А вот мой Javascript функция:

<script language="javascript"> 
function validateForm(buildcourse){ 
    $('form input[type="text"]').each(function(){ 
     this.value = replace(",","&#44;"); 
    }); 
} 
</script> 

Очень хотелось бы помочь, чтобы получить его работу. Извините, я полностью неактивен Javascript.

+0

Какова цель? Обычно такой вариант лучше всего делать на стороне сервера. – Radu

+0

Согласовано 100%. В этом случае это устаревший сайт ColdFusion, в котором есть много полей форм, которые представлены с одинаковыми именами, а затем разделяются позже. Но это означает, что ни одно из полей в них не может иметь запятых. Это супер глупо и раздражает, но мне просто нужно заставить его работать и надеяться, что мы скоро его перекодируем. – user1316401

+0

'replace()' принадлежит 'String', поэтому вы должны вызвать его таким образом' String.replace ('/,/g', ',') ' – Adi

ответ

2

Вы можете сделать это, чтобы разделить на commas затем воссоединиться с "&#44;"

$('form input[type="text"]').each(function(){ 
    this.value = this.value.split(',').join('&#44;') 
}); 

Чистый JavaScript http://jsfiddle.net/mQrLS/3/

var theInputs = document.getElementsByTagName('input'); 
for (var i = 0; i < theInputs.length; i++) { 
    var node = theInputs [i]; 

    if (node.getAttribute('type') == 'text') { 
     // using split 
     //node.value = this.value.split(',').join('&#44;'); 
     // using regex 
     node.value= node.value.replace(/,/g,'&#44;'); 
    } 
} 

Как уже упоминалось @Radu Заменить регулярное выражение делает выполнение быстрее

+0

Проверка или замена просто даже не кажется будь то ваш код или мой. Есть ли проблема синтаксиса, которую я пропускаю в другом месте? – user1316401

+0

Я на самом деле просто обновил свой код. Я забыл этот.value.split раньше –

+0

Код по-прежнему не работает/увольнение ... :( – user1316401

2

проблема с вашим кодом заключается в том, что нет глобальной функции замены. Однако он доступен как метод для любой строки.

<form name="buildcourse" id="buildcourse" action="target.htm" method="post" enctype="multipart/form-data"> 

(вынул встроенное событие связывания)

$('#buildcourse').submit(function() { 
    $('form input[type="text"]').each(function(){ 
     this.value = this.value.replace(/,/g, '&#44;'); 
    }); 
});​ 
+0

Это будет только первая запятая в строке правильно? –

+0

@wirey, хорошо поймать, исправит – Radu

+0

, это должно исправить: '.replace ('/,/g', ',')' – Adi

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