我有几个具有onchange
属性的select元素可以触发不同的函数。由于某种原因,该功能没有运行。我认为问题出在onchange
属性中。这是HTML:
<select id="select_level" onchange="updateJumpLevelLink(this.SelectedIndex.value)">
<option value="easy">Level</option>
<option value="easy">Easy</option>
<option value="medium">Medium</option>
<option value="hard">Hard</option>
</select>
<select id="select_puzzle" onchange="updateJumpPuzzleLink(this.SelectedIndex.value)">
<option value="1">Puzzle</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<a href="sudoku?level=easy&puzzle=1" id="jump_link"><div id="jump">Jump</div></a>
这是javascript:
$(document).ready(function() {
for (i = 1; i <= 10; i++) {
$('#select_puzzle').append('<option value="'+i+'">'+i+'</option>');
}
function updateJumpLevelLink(new_value) {
var current_link = $('#jump_link').attr('href');
$('#jump_link').attr('href', 'sudoku?level='+new_value+'&puzzle='+current_link.substr(current_link.indexOf('?')).split('&')[1].substr('puzzle='.length));
}
function updateJumpPuzzleLink(new_value) {
var current_link = $('#jump_link').attr('href');
$('#jump_link').attr('href', 'sudoku?level='+current_link.substr(current_link.indexOf('?')).split('&')[0].substr('level='.length)+'&puzzle='+new_value);
}
});
如果你在这里看到问题,请告诉我。感谢。
答案 0 :(得分:2)
我不知道你想在你的项目中做什么,但如果案例是onchange,我认为这会对你有帮助,在你的JS库中添加jQuery它会帮助你很多这里是我使用jQuery的示例onCHange示例< / p>
$( "#select_level" ).change(function() {
alert($(this).val());
});
答案 1 :(得分:2)
Fiddle全力以赴。
我用过
$( "#select_level" ).change(function() {
var current_link = $('#jump_link').attr('href');
$('#jump_link').attr('href', 'sudoku?level='+$(this).val()+'&puzzle='+current_link.substr(current_link.indexOf('?')).split('&')[1].substr('puzzle='.length));
});
$( "#select_puzzle" ).change(function() {
var current_link = $('#jump_link').attr('href');
$('#jump_link').attr('href', 'sudoku?level='+current_link.substr(current_link.indexOf('?')).split('&')[0].substr('level='.length)+'&puzzle='+$(this).val());
});
答案 2 :(得分:1)
您的第一个问题是您的功能是在文档中定义的,因此它不起作用,因为技术上的功能在全球范围内不存在。您需要将其移出document.ready()。
你的第二个问题是你传递了错误的价值。 “this.SelectedIndex.value”应该是“this.Value”,否则它不会向函数发送任何内容。
<select id="select_level" onchange="updateJumpLevelLink(this.value)">