0

这让我有点发疯。Javascript 链接应该触发函数来填充 div。但不工作。

js

function showNotes(notes,id) {
    var notes = '<form action="editnotes.php" method="post"><textarea>'+notes+'</textarea><input type="hidden" name="id" value="'+id+'"><input type="submit" name="submit" value="Save Notes"></form>';
    var target = 'notebox';
    alert(id);
    document.getElementById(target).innerHTML = notes;
    return false; 
}

html

<a href='#' onclick='showNotes('hi there','143');'><small>Show Notes</small></a>
<div id="notebox"></div>
4

4 回答 4

5

用双引号将onclick属性值括起来,这样单引号在您的字符串中指定一个字符串。

onclick="showNotes('hi there','143');"

http://jsfiddle.net/77CKx/

于 2012-06-14T00:29:00.443 回答
1

Shredder 抓住了问题的核心。您有嵌套引号。然而,内联 JS 并不酷。用脚本来做,问题就消失了。http://robertnyman.com/2008/11/20/why-inline-css-and-javascript-code-is-such-a-bad-thing/

HTML

<a href="#" id="shownotes"><small>Show Notes</small></a>

JS

document.getElementById('shownotes').onclick = function() {
   showNotes('hi there', '143');
   return false;
}
于 2012-06-14T00:32:21.613 回答
1

似乎您正在通过对函数参数使用单个撇号来破坏 onclick。

尝试

<a href='#' onclick="showNotes('hi there','143');"><small>Show Notes</small></a>
于 2012-06-14T00:33:41.917 回答
0

工作代码:

showNotes = function (notes,id) {
    var notes = '<form action="editnotes.php" method="post"><textarea>'+notes+'</textarea><input type="hidden" name="id" value="'+id+'"><input type="submit" name="submit" value="Save Notes"></form>';
    var target = 'notebox';
    alert(id);
    document.getElementById(target).innerHTML = notes;
    return false; 
}​


<a href='#' onclick="showNotes('hi there','143');"><small>Show Notes</small></a>
<div id="notebox"></div>​

您还可以在此处查看它的工作情况:http: //jsfiddle.net/ZMZGk/13/

于 2012-06-14T00:41:40.483 回答