我仍在學習 Javascript,我需要將輸入型別的文本值轉換為 javascript 代碼并將其轉換為整數。但每次它顯示“你的失敗”,即使我輸入了更高的分數。我需要幫助才能找到我的錯誤。
function mark() {
var sMark = document.form.mark.value;
var myMark = parseInt(sMark);
if (myMark > 75) {
document.write("You pass exam with Higher mark");
} else if (myMark > 50) {
document.write("You pass exam");
} else {
document.write("You Fail");
}
}
<form action="" name="form">
Enter Your Mark: <input type="text" name="mark" id="mark1">
<input type="submit" value="Submit" onclick="mark()"><br>
</form>
uj5u.com熱心網友回復:
您的代碼存在一些問題。
- 使用
<label>元素顯示與輸入元素相關的文本。 - 不要使用
document.write(),只是不要。 - 如果您只想接收數字,請
type="number"用于元素。<input> - 使用
onclick是不好的做法。而是使用注冊事件偵聽器addEventListener()。
const result = document.querySelector('#result');
const form = document.forms['mark-form'];
function handleSubmit(e) {
e.preventDefault();
const { mark } = e.currentTarget.elements;
const value = mark.valueAsNumber;
switch (true) {
case value > 75:
result.textContent = 'You pass with a higher mark.';
break;
case value > 50:
result.textContent = 'You pass the exam.';
break;
default:
result.textContent = 'You fail.';
}
}
form.addEventListener('submit', handleSubmit);
<h1 id="result"></h1>
<form name="mark-form">
<label for="mark-input">Enter your mark:</label>
<input type="number" name="mark" id="mark-input" />
<button type="submit">Submit</button>
</form>
uj5u.com熱心網友回復:
具有名稱的輸入"mark"隱藏了mark行內onclick處理程式中的全域函式。重命名它們或直接呼叫window.mark().
function mark() {
var sMark = document.form.mark.value;
var myMark = parseInt(sMark);
if (myMark > 75) {
document.write("You pass exam with Higher mark");
} else if (myMark > 50) {
document.write("You pass exam");
} else {
document.write("You Fail");
}
}
<form action="" name="form">
Enter Your Mark: <input type="text" name="mark" id="mark1">
<input type="submit" value="Submit" onclick="window.mark()"><br>
</form>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/510218.html
