Formfill в Javascript не работает? - PullRequest
2 голосов
/ 05 марта 2010
var tagMatch;
    if (tagMatch = window.location.href.match(/\/questions\/ask\?tags=([^&]+)/)) {
       $(function() { 
         if (!$('#tagnames').val().length) {
         $('#tagnames').val(unescape(match[1].replace(/\+/g, ' '));
          }
     });
     }

Привет всем, этот JS-код должен соответствовать последней части URL-адреса формы /questions/ask?tags=some-tag, а затем вставить текст, содержащийся в части URL-адреса после tags=, в текстовое поле с идентификатором #tagnames. Что я делаю неправильно? Как я могу это исправить?

Я все еще учусь, поэтому, если вы хотите показать мне, как исправить мои регулярные выражения или что-то еще, пожалуйста, сделайте!

Ответы [ 2 ]

1 голос
/ 05 марта 2010

Я думаю, что ошибка с этой строкой

if (!$('#tagnames').val().length)

length вернет число и проверит это по номеру.

Что-то вроде

if ($('#tagnames').val().length > 0)

Я не думаю, что нужно помещать документ готовым внутри оператора if. Разве это не лучше?

 $(function() { 
       var tagMatch;
       if (tagMatch = window.location.href.match(/\/questions\/ask\?tags=([^&]+)/)) 
       {
           if ($('#tagnames').val().length > 0)
           {
               $('#tagnames').val(unescape(match[1].replace(/\+/g, ' '));
           }
       }
    });
1 голос
/ 05 марта 2010

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

Кажется, вы определяете и устанавливаете переменную с именем tagMatch, но затем вы используете переменную с именем match для установкизначение.

В этом ли проблема?

Обновление: Извинения - ваше регулярное выражение верно - я неправильно понял намерение:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...