如何使用选择器为if获取不同的变量



我正在为我的工作开发一个工具,用于自动生成任务注释,以简化代理工作流程。我正在尝试使用选择器来区分票证类型,并相应地生成注释字符串。

我遇到的问题是,我似乎无法让页面告诉选择器已经更改,它只会给出if条件,而忽略else。

我确信我错过了一些简单的东西,但似乎无法弄清楚。

<!DOCTYPE html>
<html>
<body>
Select Ticket Type:
<label name="ticket" id="ticket"></label>
<select name="ticket" id="ticket">
<option value="1">SMB</option>
<option value="2">Complete</option>
</select>
<input type="text" id="ticketgen" placeholder="EnterTicket number" maxlength="8">
<input type="button" id="tickgen" value="Generate">
<p id="output"></p>
</body>

<script>
const txt1 = document.getElementById('ticketgen');
const btn1 = document.getElementById('tickgen');
const out1 = document.getElementById('output');
function fun1() {
var tick = document.getElementById('ticket');
var today = new Date();
var date = (today.getMonth() + 1) + '-' + today.getDate() + '-' + today.getFullYear();
var time = today.getHours() + ':' + today.getMinutes();
var dateTime = date + ' ' + time;
setInterval(1000);
if (tick = 1) {
out1.innerHTML = "Correspondence:" + ' ' + dateTime + ' ' + txt1.value + ' ' + "SMB Correspondence";
} else {
out1.innerHTML = "Correspondence:" + ' ' + dateTime + ' ' + txt1.value + ' ' + "# attempt, contacted CX @";
}
}

btn1.addEventListener('click', fun1);
</script>

</html>

需要解决的几个问题:

  1. 您的比较需要一个二重相等-==
  2. tick本身只是一个html元素,你不能将其与数字进行比较,你需要获得当前选择的索引
  3. 您使用id=ticket两次,所以当您通过该ID获取html元素时,它会获取第一个元素,即标签

我相信这个代码应该可以解决你的问题

<!DOCTYPE html>
<html>
<body>
Select Ticket Type:
<label name="ticket" id="ticket-label"></label>
<select name="ticket" id="ticket">
<option value="1">SMB</option>
<option value="2">Complete</option>
</select>
<input type="text" id="ticketgen" placeholder="EnterTicket number" maxlength="8">
<input type="button" id="tickgen" value="Generate">
<p id="output"></p>
</body>

<script>
const txt1 = document.getElementById('ticketgen');
const btn1 = document.getElementById('tickgen');
const out1 = document.getElementById('output');
function fun1() {
var tick = document.getElementById('ticket');
var today = new Date();
var date = (today.getMonth()+1)+'-'+today.getDate()+'-'+today.getFullYear();
var time = today.getHours() + ':' + today.getMinutes();
var dateTime = date+' '+time;
setInterval(1000);
if (tick.selectedIndex == 0){
out1.innerHTML = "Correspondence:"+' '+dateTime+' '+txt1.value+' '+"SMB Correspondence";
} else {
out1.innerHTML = "Correspondence:"+' '+dateTime+' '+txt1.value+' '+"# attempt, contacted CX @";
}
}

btn1.addEventListener('click',fun1);
</script>
</html>

tick的值将是一个字符串,您将其作为整数进行检查。尝试将其更改为if(tick="1"(。

标签属性id与选择属性的id相同。请尝试更改标签id。所有HTML属性都必须具有唯一的id/name。

在纯JavaScript中,您可以获得如下所示的所选选项值

var e = document.getElementById("tick");
var value = e.options[e.selectedIndex].value;

希望这能有所帮助!:(

最新更新