<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body> 

<form name="f1">

A:<input type="text" name="a" id="a"/><br/>

B:<input type="text" name="b" id="b"/><br/>

RESULT:<input type="text" name="result" id="result"/><br/>

<input type="button" value="+"  onclick="chk('+')"/>

<input type="button" value="-"  onclick="chk('-')"/>

</form>

</body>

</html>



문제) 위의 HTML을 기본으로, +를 누르면 a + b 를 result 에, -를 누르면 a - b 를 result 에 표시하고  

버튼을 누를 때 a 나 b에 값이 없으면 'A값을 입력하세요' 라는 식으로 경고창을 띄우는 자바스크립트를 작성하시오.


내가 해본 것)

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

<script>

function add() { // 덧셈 함수는 parseInt를 써봄.(input는 무조건 문자열만 받으므로)

var aNum = parseInt(document.f1.a.value);

var bNum = parseInt(document.f1.b.value);

result = aNum + bNum;

if (document.f1.a.value == null | document.f1.a.value == "") { alert('A값을 입력하세요'); }

else if (document.f1.b.value == null | document.f1.b.value == "") { alert('B값을 입력하세요'); }

else 

document.f1.result.value = result;

}


function subtraction() { // 뺄셈 함수는 eval을 써봄

var aNum = document.f1.a.value;

var bNum = document.f1.b.value;

var result = eval(aNum - bNum);

if (document.f1.a.value == null | document.f1.a.value == "") { alert('A값을 입력하세요'); }

else if (document.f1.b.value == null | document.f1.b.value == "") { alert('B값을 입력하세요'); }

else 

document.f1.result.value = result;

}


</script>

</head>

<body> 

<form name="f1">

A:<input type="text" name="a" id="a"/><br/>

B:<input type="text" name="b" id="b"/><br/>

RESULT:<input type="text" name="result" id="result"/><br/>

<input type="button" value="+"  onclick="add()"/>

<input type="button" value="-" onclick="subtraction()"/>

</form>

</body>

</html>



강사님 설명)

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

<script>

function chk(op) { // op라는 매개변수로 +나 -를 받아오도록 함

var a = document.f1.a;

var b = document.f1.b;

if(a.value.trim() == '') { alert('A값을 입력하세요'); return;} // 공백문자 인식불가를 위한 trim으로 제거

if(b.value.trim() == '') { alert('B값을 입력하세요'); return;}

var numA = parseInt(a.value);

var numB = parseInt(b.value);

if(op == '+') {

document.f1.result.value = numA + numB;

}

else if(op == '-') {

document.f1.result.value = numA - numB;

}

}


</script>

</head>

<body> 

<form name="f1">

A:<input type="text" name="a" id="a"/><br/>

B:<input type="text" name="b" id="b"/><br/>

RESULT:<input type="text" name="result" id="result"/><br/>

<input type="button" value="+"  onclick="chk('+')"/>

<input type="button" value="-" onclick="chk('-')"/>

</form>

</body>

</html>




Posted by netyhobby
,