我有一个链接:
<a id="trigger" href="file.pdf" onclick="return false;">Download pdf</a>
和这个Javascript:
// Check validation and enable or disable the <a> tag
if( $('#input_1').hasClass('valid') )
{
$('#trigger').prop("onclick", null);
}
else // disable the button
{
$('#trigger')[0].onclick = function () { return false; }
}
然而,当验证失败时,即使使用
按钮仍然有效onclick="return false;"
有人可以帮我理解这个以及如何有效地禁用锚标记吗?
更新:已修复$('#trigger')[0].onclick = function () { return false; }
但是一旦这使其成为锚标记,该按钮仍然可以提供文件下载。
答案 0 :(得分:1)
.preventDefault
更好地使用.prop
方法。
也仅对表单控件使用 String inputFile = "C:\Users\...\file.txt";
FileInputStream in = new FileInputStream(inputFile);
FileChannel ch = in.getChannel();
ByteBuffer buf = ByteBuffer.allocate(1024);
ArrayList<Integer> list = new ArrayList<Integer>();
int column=-1;
int row=0;
int rd;
while ((rd = ch.read( buf )) != -1){
buf.flip();
while (buf.hasRemaining()){
byte byteVal = buf.get();
if((byteVal == 48) || (byteVal == 49)){ //ascii code for 0 is 48 and for 1 is 49
column++;
}
if (byteVal == 92){ //ascii code for "/" is 92 as to know when it changes line
row++;
column=0;
}
if(byteVal == 49){
list.add(column);
list.add(row);
}
}
buf.clear();
}
ch.close();
方法。
答案 1 :(得分:1)
您需要执行以下任一操作:
$('#trigger')[0].onclick = function () {return false;}
或
$('#trigger').click(function () {return false;});
答案 2 :(得分:1)
对于这样的情况,我喜欢让人们更难以绕过前端安全性。 (但只是一点点,但显然这很容易被绕过。)
pointer-events
设置为无,因此无法注册点击次数
var valid = false;
$("#valid-checkbox").change(function() {
var $this = $(this),
trigger = $("#trigger");
if ($this.is(":checked")) {
valid = true;
$this.val("valid");
trigger.removeClass("disabled");
} else {
valid = false;
$this.val("invalid");
trigger.addClass("disabled");
}
});
$("#trigger").click(function(e) {
if (valid === false || $(this).hasClass("disabled") || $("#valid-checkbox").val() == "invalid") {
e.preventDefault();
}
});
&#13;
.disabled {
opacity: 0.5;
pointer-events: none;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="trigger" href="http://www.keenthemes.com/preview/metronic/theme/assets/global/plugins/jcrop/demos/demo_files/image1.jpg" class="disabled" target="_blank">Download pdf</a>
<input type="checkbox" value="invalid" id="valid-checkbox">
<label for="valid-checkbox">Valid?</label>
&#13;