Onclick работает изолированно, но не на веб-странице - PullRequest
0 голосов
/ 09 ноября 2011

На тестовой странице это работает со статическими переменными:

<input class="txtSearch"
       onblur="if(this.value == '')this.value='Search' ;"
       onfocus="if(this.value == 'Search') this.value='';"
       value="Search" name="s" type="text" size="15" />

Когда я размещаю его внутри своей страницы, переключая статические переменные с динамическими php, я получаю белую страницу.Правильно ли я экранирую их внутри функции?

function wpsb_show_form($rtn = 0) { 
    $wpsb_flds = (get_option('wpsb_form_fields'));
    $add_link_lv = get_option("wpsb_link_love");
    $out = '<form action="#wpsbw" method="post">' . "\n";

    if (is_array($wpsb_flds)) {
        foreach ($wpsb_flds as $wpsb_k => $wpsb_v) {
            if (is_numeric($wpsb_k) && $wpsb_v) {
                $out .= '<ul class="optin">';
                $out .= '<li><span>Subscribe to our Newsletter</span></li>';
                $out .= '<li><input type="text" name="wpsb_fld['. $wpsb_k .']" id="wpsb_fld_'. $wpsb_k .'"  maxlength="64" class="txt" onblur="if(this.value == '') this.value="'. $wpsb_k .'" ;" onfocus="if(this.value == "'. $wpsb_k .'") this.value='';" value="'. $wpsb_k .'" /></label></li>' . "\n";
        }
    }
}

Нужно ли экранировать условные операторы javascript?

1 Ответ

0 голосов
/ 09 ноября 2011

Вам нужно экранировать одинарные кавычки (') в строке, где вы выводите JavaScript.

Помните:

print '\''; # output: '
print '"';  # output: "
print "'";  # output: '
print "\""; # output: "
...