JS:传递变量onclick
我想将一个变量传递给一个函数,我知道有很多关于这个的话题,并且我几乎尝试了所有的建议,但仍然无法让它工作,这些都是我尝试:JS:传递变量onclick
编辑:没有的onclick,一切工作正常
var filename = file.name;
<button class="btn btn-danger delete" onclick="deleteImage(\''+filename+'\');">
结果:未捕获的SyntaxError:意外的标记非法
<button class="btn btn-danger delete" onclick="deleteImage("'+type+'");">
个
结果(警报): '文件名'
<button class="btn btn-danger delete" onclick="deleteImage('" + filename + "');">
结果:未捕获的SyntaxError:意外令牌非法
<button class="btn btn-danger delete" onclick="deleteImage(" + filename + ");">
结果:未捕获的SyntaxError:意外令牌}
这是完整的代码(已修改,blueimp文件上传者)
<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-download fade">
{% if (file.error) { %}
<td></td>
<td class="name"><span>{%=file.name%}</span></td>
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
<td class="error" colspan="2"><span class="label label-important">Error</span> {%=file.error%}</td>
{% } else {
// add the image urls to the file inputbox
var filename = file.name;
var prev = $("#mFile").val();
$("#mFile").val(prev + file.name + ",");
%}
<td class="preview">{% if (file.thumbnail_url) { %}
<a href="modules/mod_stern_form_prijsopgave/upload/server/php/files/{%=file.name%}" title="{%=file.name%}" data-gallery="gallery" download="{%=file.name%}"><img src="modules/mod_stern_form_prijsopgave/upload/server/php/files/thumbnail/{%=file.name%}"></a>
{% } %}</td>
<td class="name">
<a href="modules/mod_stern_form_prijsopgave/upload/server/php/files/{%=file.name%}" title="{%=file.name%}" data-gallery="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
</td>
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
<td colspan="2"></td>
{% } %}
<td>
<button class="btn btn-danger delete" onclick="deleteImage('" + filename + "');" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}"{% if (file.delete_with_credentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
<i class="icon-trash icon-white"></i>
<span>Verwijderen</span>
</button>
</td>
</tr>
{% } %}
</script>
和测试这样的:
function deleteImage(filename) {
alert(filename);
}
我究竟做错了什么?感谢您的建议
尝试的onclick值模板格式:
onclick="deleteImage('{%=filename%}');"
尝试文件。名称,以及
onclick="deleteImage('{%=file.name%}');"
lol..I've尝试一些接近这个..这个工作!非常感谢。这可能会带来你的脸上的笑容:我只花了2小时在这 – 2013-04-11 12:58:59
高兴地帮助:) – 2013-04-11 13:06:40
您无法从您的HTML访问JS变量。你必须这样做:
var filename = 'testing';
document.getElementById('testdiv')
.setAttribute('onclick', "alert('" + filename + "')");
filename = 'more testing';
我试过这个,结果如下:Uncaught SyntaxError:Unexpected token} – 2013-04-11 12:15:17
@MaartenHartman那么这是代码中的其他地方的问题,因为我的代码绝对没有'}'。 – Doorknob 2013-04-11 12:16:12
我知道,通常你的建议应该可以工作,但是如果没有onclick,一切工作都很好,所以代码没有缺陷。 – 2013-04-11 12:20:09
<button id="deleteOnClick" class="btn btn-danger delete">...</button>
,并在javascript:
document.getElementById("deleteOnClick").onclick = function(){deleteImage(filename);}
编辑:如果你想只删除原来的文件名值中指定的文件
:
var deleteByFile = (function (filename){
return function(){deleteImage(filename);};
}(filename));
document.getElementById("deleteOnClick").onclick = deleteByFile
感谢您的输入,但确确实实,我不能用这个 – 2013-04-11 12:16:32
所有的建议导致:遗漏的类型错误:不能设置为空的特性“的onclick” – 2013-04-11 12:45:31
是否在按钮上添加了“id”?如果不是那么你可以使用'$(“。btn-danger”)。click(deleteByFile);'而不是。 – user2153497 2013-04-11 12:54:27
尝试使用onclick="deleteImage(" + filename + ");"
您可以设置类似VAR计数器= 1 varaiable;
任何需要的地方,你可以像
onclick="updateCount('+counter+')"
什么系统,这是更新呢?看起来它可能是jQuery模板或knockoutjs?这个问题需要更好的标记。 – drquicksilver 2013-04-11 12:12:21
是的,jquery,我会添加标签。 – 2013-04-11 12:12:43