2 Stimmen

Formfill in Javascript funktioniert nicht?

var tagMatch;
    if (tagMatch = window.location.href.match(/\/questions\/ask\?tags=([^&]+)/)) {
       $(function() { 
         if (!$('#tagnames').val().length) {
         $('#tagnames').val(unescape(match[1].replace(/\+/g, ' '));
          }
     });
     }

Hallo alle, dieser JS-Code soll den letzten Teil einer URL der Form entsprechen /questions/ask?tags=some-tag und fügen Sie dann den Text ein, der in dem Teil der URL nach tags= in ein Textfeld mit der ID #tagnames . Was mache ich falsch? Wie kann ich das beheben?

Ich bin immer noch lernen, so dass, wenn Sie mir zeigen, wie man meine Regex oder etwas anderes zu beheben, bitte tun!

1voto

Damovisa Punkte 18793

Ohne zu sehr darauf einzugehen, wie der Stringabgleich funktioniert...

Sie scheinen eine Variable namens tagMatch aber dann verwenden Sie eine Variable namens match um den Wert einzustellen.

Ist das das Problem?

更新しました。 Entschuldigung - Ihre Regex ist korrekt - ich habe die Absicht falsch verstanden :)

1voto

rahul Punkte 179143

Ich glaube, der Fehler liegt in dieser Zeile

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

length gibt eine Zahl zurück und vergleicht diese mit number.

Etwas wie

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

Ich glaube nicht, dass es notwendig ist, document ready innerhalb der if-Anweisung zu platzieren. Ist das nicht besser?

 $(function() { 
       var tagMatch;
       if (tagMatch = window.location.href.match(/\/questions\/ask\?tags=([^&]+)/)) 
       {
           if ($('#tagnames').val().length > 0)
           {
               $('#tagnames').val(unescape(match[1].replace(/\+/g, ' '));
           }
       }
    });

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X