gpt4 book ai didi

javascript - 如果未进行选择,则显示预定义值 - Javascript

转载 作者:行者123 更新时间:2023-11-28 17:47:36 25 4
gpt4 key购买 nike

我有这个 JavaScript:

$(function() {

$("#generate").click(function() {
$("#id").val(generateID($("#age").val()));
var increaseBy = increaseBase(generateSOCS());

$("#numbersoc1").val(increaseBy(0));
$("#numbersoc2").val(increaseBy(1));
$("#numbersoc3").val(increaseBy(2));
$("#numbersoc4").val(increaseBy(3));
});

$.getJSON("age.json", function(json) {

$("#age").empty();
$("#age").append($('<option>').text("Select age"));

$.each(json, function(i, obj){
$("#age").append($('<option>').text(obj.age).attr('value', obj.permanent));
});
});
});

function increaseBase(base) {
return function(value) {
return "SOCS" + (base + value).toString(16).toUpperCase()
}
}

function generateSOCS() {
return random(10, 16777215);
}

function generateID(permanent) {
if(permanent == "Select age")
return "Please select your age first!";
var add = 5
return (permanent + random(1,100) + random(100,50000) + ++add);
}

function random(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}

还有这个 html:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src='script.js'></script>
<h1>Number Generator</h1>

<div>
<select name="age" id="age"></select><br/>

<input id="generate" type=button value="Generate" /><br/><br/>
<br/>
Identifier<br/>
<input id="id" placeholder="Identification Number" /><br/><br/>
Number<br/>
<input id="numbersoc1" placeholder="Number Soc. S1." /><br/>
<input id="numbersoc2" placeholder="Number Soc. S2." /><br/>
<input id="numbersoc3" placeholder="Number Soc. S3." /><br/>
<input id="numbersoc4" placeholder="Number Soc. S4." /><br/>
</div>

还有这个 json:

[
{ "age": "18", "permanent": "AA" },
{ "age": "19", "permanent": "BB" },
{ "age": "20", "permanent": "CC" }
]

当我点击“生成”按钮而不在下拉菜单中选择年龄时,“标识符”框将显示以下内容:“请先选择您的年龄!”这是正常的并且是预期的,但是我想对 4 个数字框做同样的事情。如有帮助,我们将不胜感激。

另外,代码可以提高效率吗?我的意思是更短。如果是的话怎么办?

提前谢谢您。

最佳答案

您应该首先检查#age中所选值的值。
这可以通过一个简单的 if else 语句来实现。

$("#generate").click(function() {
if ($('#age').val() !== '<your default value>') {
//your code for setting the values of the #numbersoc* inputs
} else {
//code that notifies the user about needing to select an age.
}
});

请注意,对于此示例,您的年龄选择标记中需要有一个默认值作为选项。
这可以通过使用以下选项标签来实现。

<option selected="true" disabled="disabled">Select your age</option>  

编辑
将解决方案添加到OP的代码中。

$(function() {
$("#generate").click(function() {
//checks if the value of #id is an empty string
if ($("#id").val(generateID($("#age").val())).val() == '') {
//alerts the user that they should enter an age
//feel free to make something nice here
alert('Please insert age first');
} else {
var increaseBy = increaseBase(generateSOCS());

$("#numbersoc1").val(increaseBy(0));
$("#numbersoc2").val(increaseBy(1));
$("#numbersoc3").val(increaseBy(2));
$("#numbersoc4").val(increaseBy(3));
}
});

//uncomment this when using the json
/*$.getJSON("age.json", function(json) {

$("#age").empty();
$("#age").append($('<option>').text('Select age').attr('value', 'Select age')
.attr('selected', true).prop('disabled','disabled'));

$.each(json, function(i, obj) {
$("#age").append($('<option>').text(obj.age).attr('value', obj.permanent));
});
});*/
});

function increaseBase(base) {
return function(value) {
return "SOCS" + (base + value).toString(16).toUpperCase()
}
}

function generateSOCS() {
return random(10, 16777215);
}

function generateID(permanent) {
// simple check for default, empty or null value
if ($('#age').val() == 'Select age' || $('#age').val() == '' || $('#age').val() == null) {
return;
}
var add = 5
return (permanent + random(1, 100) + random(100, 50000) + ++add);
}

function random(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src='script.js'></script>

<h1>Number Generator</h1>

<div>
<select name="age" id="age">
<!-- the options will be auto generated -->
<option selected="true" disabled="disabled">Select age</option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<br/>

<input id="generate" type=button value="Generate" />
<br/>
<br/>
<br/> Identifier
<br/>
<input id="id" placeholder="Identification Number" />
<br/>
<br/> Number
<br/>
<input id="numbersoc1" placeholder="Number Soc. S1." />
<br/>
<input id="numbersoc2" placeholder="Number Soc. S2." />
<br/>
<input id="numbersoc3" placeholder="Number Soc. S3." />
<br/>
<input id="numbersoc4" placeholder="Number Soc. S4." />
<br/>
</div>

关于javascript - 如果未进行选择,则显示预定义值 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46337377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com