2011-02-13 78 views
0

我追加如下:附加功能撇號

$('#field').append("<input type='text' id='searchfield' placeholder='Search...' autosave='save' results='5' onkeyup='onChange('searchfield','searchfield_right')' />") 

它的追加,但的onChange功能不是由於工作的撇號...

onkeyup="onChange('searchfield','searchfield_right')" 

它應該看起來像上面"''searchfield','searhfield_right'

當你追加你必須使用'只有 所以'searchfield','searhfield_right'會被視爲"searchfield","searchfield_right" 這是不正確的 -

是有不同的方式來追加該功能的右撇號' ????

回答

1

您的屬性值以'個字符分隔。因此,如果您嘗試在值中使用文字',它將終止該值而不是其中的一部分。

onkeyup='onChange(' 

用實體(&#39;)表示它。更好的是(事實上要好得多),請使用unobtrusive JavaScript:使用JavaScript附加事件處理程序,而不使用HTML屬性。

0

只是逃避他們。

$('#field').append("<input type='text' id='searchfield' onkeyup='onChange(\"searchfield\",\"searchfield_right\");' />"); 

但是,我同意大衛,你應該使用事件處理程序。

0

不是傳遞字符串變量的,只是通過thisevent

onkeyup="onChange(this, event)" 
在你的onChange功能

然後,您可以使用:

function onChange(element, event) { 
    var id = element.id, 

} 

然而,如果你是絕對肯定要通過字符串,逃避報價:

onkeyup="onChange(\"searchfield\",\"searchfield_right\")" 

--->Demo < ---

+0

謝謝!兩種解決方案都在起作用 – Cam