我在烧瓶和脚本上运行的网站中有以下按钮:
reduce
>>> nested_dicts = {'d1': 'd1 val', 'd2': {'d2_1': {'d2_1_1': 'd2_1_1 val', 'd2_1_2': 'd2_1_2 val'}, 'd2_2': {'d2_2_1': 'd2_2_1 val'}}}
>>> def to_list(value):
... return [value] if isinstance(value, str) else reduce(lambda x,y: x+to_list(y), value.values(), [])
...
>>> to_list('test')
['test']
>>> reduce(lambda x, y: x+to_list(y), nested_dicts.values(), [])
['d2_2_1 val', 'd2_1_1 val', 'd2_1_2 val', 'd1 val']
唯一要做的就是禁用按钮,但它不会更改文本或重定向到我想要的网站。
有人知道为什么会这样吗?
答案 0 :(得分:1)
更改clickEnBoton
功能,如下所示
function clickEnBoton(){
alert("1");
$("#realScanButton").text('Scanning...');
alert("2");
$("#realScanButton").attr('disabled','disabled');
alert("3");
window.location.href = 'http://localhost:5000/scan';
return true;
}
或者您可以通过
完成$(document).ready(function() {
$("#realScanButton").click(function() {
alert("1");
$(this).text('Scanning...');
alert("2");
$(this).attr('disabled','disabled');
alert("3");
window.location.href = 'http://localhost:5000/scan';
});
});
答案 1 :(得分:1)
您需要为按钮设置html以更新文本, 即'$(“#realScanButton”)。html('Scanning ...');' 并重定向到不同的页面使用, window.location.href ='http://localhost:5000/scan';
答案 2 :(得分:-1)
尝试改变你的功能:
$( document ).ready(function() {
$("#realScanButton").click(function() {
clickEnBoton();
});
});
function clickEnBoton(){
alert("1");
$("#realScanButton").html('Scanning...');
alert("2");
$("#realScanButton").attr('disabled','disabled');
alert("3");
//this will not run, until btn will be enabled again and clicked
$("#realScanButton").click(function() {
window.location.href = 'http://localhost:5000/scan'
});
return true;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="text-align:center;">
<button href="scan" id="realScanButton" type="button">Scan Network</button>
</div>
但是请注意更改按钮操作,直到再次单击才会运行,如果您想在点击后立即重定向页面,请更改以下功能:
function clickEnBoton(){
alert("1");
$("#realScanButton").html('Scanning...');
alert("2");
$("#realScanButton").attr('disabled','disabled');
alert("3");
window.location.href = 'http://localhost:5000/scan'
return true;
}