Javascript 是否可以根据其他表单的输入更改HTML5范围滑块的最小值和最大值?
请参阅: 例如,当选择的种族是人类时,我希望年龄滑块的最小值和最大值介于10-80之间,但当选择Faela时,我希望它介于10-70之间。这可能吗?如果可能,如何实现 如果可能的话,我希望它在滑块更改之前不提交比赛输入即可工作。当然,请尝试添加以下内容:Javascript 是否可以根据其他表单的输入更改HTML5范围滑块的最小值和最大值?,javascript,jquery,html,max,minimum,Javascript,Jquery,Html,Max,Minimum,请参阅: 例如,当选择的种族是人类时,我希望年龄滑块的最小值和最大值介于10-80之间,但当选择Faela时,我希望它介于10-70之间。这可能吗?如果可能,如何实现 如果可能的话,我希望它在滑块更改之前不提交比赛输入即可工作。当然,请尝试添加以下内容: $('#Race').change(function () { if (this.value == "faela") { $('#slider').prop({ 'min': 10,
$('#Race').change(function () {
if (this.value == "faela") {
$('#slider').prop({
'min': 10,
'max': 70
});
}
if (this.value == "human") {
$('#slider').prop({
'min': 10,
'max': 80
});
}
$('#slider').val(10);
output.html('10');
});
(请注意,在您的代码中,滑块的最小/最大值为14和60,因此我将其更改为10和80。)当然,通过使用
对象,您可以快速轻松地完成此操作,例如:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<title>Character Creation</title>
<meta charset="UTF-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(function(){
//Range
var slider = $("#slider"), val = slider.val(), output = $("#output");
output.html(val);
slider.on("change", function(){
output.html($(this).val());
});
//Change range values
var minMax = {
human: [10, 80],
faela: [10, 70],
domovoi: [12, 99],
arcon: [5, 80],
tsaaran: [20, 100]
};
$("#Race").on("change", function(){
var ages = minMax[$(this).val()];
if(ages) {
slider.attr({
min: ages[0],
max: ages[1]
});
output.html(slider.val());
}
});
});
</script>
</head>
<body>
<h1>Form</h1>
<form>
<fieldset>
<legend>Appearance</legend>
<p>
<label for="Race">Select Race:</label>
<select name="Race" id="Race">
<option value="human">Human</option>
<option value="faela">Faela</option>
<option value="domovoi">Domovoi</option>
<option value="arcon">Arcon</option>
<option value="tsaaran">Tsaaran</option>
</select>
</p>
<p>
<label for="Gender">Select Gender</label>
<select name="Gender" id="Gender">
<option value="male">Male</option>
<option value="female">Female</option>
<option value="other">Other</option>
</select>
</p>
<p>
<label for="slider">Select Age:</label> <input name="slider" type="range" min="14" max="60" id="slider" value="10" />
<span id="output"></span>
</p>
</fieldset>
</form>
</body>
</html>
人物塑造
$(函数(){
//射程
var slider=$(“#slider”),val=slider.val(),output=$(“#output”);
html(val);
slider.on(“更改”,函数(){
html($(this.val());
});
//更改范围值
var minMax={
人类:[10,80],
费拉:[10,70],
多莫沃伊:[12,99],
阿肯:[5,80],
查兰:[20100]
};
$(“#Race”)。关于(“更改”,函数(){
var ages=minMax[$(this.val());
如果(年龄){
slider.attr({
最小值:年龄[0],
最大年龄:年龄[1]
});
html(slider.val());
}
});
});
形式
外表
选择比赛:
人类
费拉
毛怪守护灵
阿肯
查兰
选择性别
男性
女性
其他
选择年龄:
我看到其他人已经用很好的答案回答了你的问题。这是我第一次尝试Stackoverflow,也是我的第一个答案。我对JQuery或AJAX不太在行,但我使用了一个简单的Javascript
<!DOCTYPE html>
<html lang="en">
<head>
<script>
function changeRange(x,y) {
var input = document.getElementById("slider");
input.setAttribute("min", x);
input.setAttribute("max", y);
}
</script>
</head>
<body>
<h1>Form</h1>
<form>
<fieldset>
<legend>Appearance</legend>
<p>
<label>
Select Race:
</label>
<select id="Race" onchange="changeRange('10', '80')">
<option value="human">Human</option>
<option value="faela" >Faela</option>
<option value="domovoi">Domovoi</option>
<option value="arcon">Arcon</option>
<option value="tsaaran">Tsaaran</option>
</select>
</p>
<p>
<label>Select Gender</label>
<select id="Gender">
<option value="male">Male</option>
<option value="female">Female</option>
<option value="other">Other</option>
</select>
</p>
<p>
<label for="range">Select Age:</label> <input type="range" min="14" max="60" id="slider" value="10" name="range"> <span id="output"></span>
</p>
</fieldset>
</form>
</body>
</html>
功能更改范围(x,y){
var输入=document.getElementById(“滑块”);
input.setAttribute(“min”,x);
输入.setAttribute(“最大”,y);
}
形式
外表
选择比赛:
人类
费拉
毛怪守护灵
阿肯
查兰
选择性别
男性
女性
其他
选择年龄:
不是最好的答案,但我想试一试:)也谢谢!遗憾的是,我不能给出2个正确答案:(.非常感谢您的回答,因为它显示了没有jQuery/AJAX修饰的简单javascript。仅供参考,setAttribute对于这些元素不是必需的,可以直接使用var.elem=val设置。