валидация JavaScript двух полей сравнения - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть два поля в форме

<div class="form">
  <label class="title">{'webmasterSubmitWebsite_rss_feed_title'|lang}</label>
  <div class="infos"><input type="text" class="input_text_large" name="rssTitle" value="" /> <img src="{"/templates/$templateName/images/icone_info.gif"|resurl}" alt="" class="aide" title="{'webmasterSubmitWebsite_rss_feed_title_tooltip'|lang}" /></div>
</div>

<div class="form">
   <label class="title">{'webmasterSubmitWebsite_rss_feed_url'|lang}</label>
   <div class="infos"><input type="text" class="input_text_large" name="rssFeedOfSite" value="" /> <img src="{"/templates/$templateName/images/icone_info.gif"|resurl}" alt="" class="aide" title="{'webmasterSubmitWebsite_rss_feed_url_tooltip'|lang}" /></div>
</div>

и я хочу, чтобы javascript, jquery или аналогичная функция проверяли эти два поля в этом режиме:

Если заголовок rss (первое поле) не пуст (заполнен), тогда URL-адрес rss (второе поле) должен быть заполнен также действительным URL-адресом, в противном случае появляется сообщение об ошибке, и это сообщение также появляется, если заполнен только URL-адрес поля rss а не поле заголовка rss т. е. если пользователь заполняет первое поле, то должен скомпилировать второе поле и наоборот.

Есть решение? Спасибо.

1 Ответ

1 голос
/ 27 сентября 2011

Дайте тегам input атрибут ID вместо name, и с помощью jquery вы можете сделать это:

function checkInput(){
var f1 = $('#rssTitle').value;
var f2 = $('#rssFeedOfSite').value;

if(f1 == '' && f2 != '')
{
    alert('Please enter an rss Title');
    return false;
}
if(f1 != '' && f2 == '')
{
    alert('Please enter a url');
    return false;
}
//check for valid url
if(f2.substring(0,7) != 'http://')
{
    alert('Please enter a valid url');
    return false;
}
$('#form1').submit();
}

Также пусть ваша кнопка вызывает эту функцию в событии onclick.

edit: если вы хотите сохранить атрибут name вместо ID, выберите их, используя jquery, например:

var f1 = $('input[name="rssTitle"]').value;
...