추가문제
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" id="id" name="uid">
<input type="button" id="duplextChkid" value="검색">
<input type="button" id="idsave" value="입력"><br>
<span id="idinfo"></span>
<script>
// 추가문제 ----------------------------------------------------------------------------------
// 8. 단어를 입력받는 요소, 검색버튼, 입력버튼이 있다.
// 입력버튼을 누르면 배열에 저장, 검색버튼을 누르면 배열에서 찾아서
// html문서 아래에 출력, 검색어가 없으면 찾을 수 없음이라고 출력
var list = new Array();
document.getElementById('idsave').onclick = () => {
var a = document.getElementById('id').value;
var flag = true;
const regExp = /^(?=.*[a-zA-z])(?=.*[$`~!@$!%*#^.?&\\(\\)\-_=+]).{2,16}$/;
if (regExp.test(a)) {
if (list.length == 0) {
document.getElementById('idinfo').innerHTML = a + '사용가능/저장완료';
list.push(a);
} else {
for (let i = 0; i < list.length; i++) {
if (list[i] == a) {
document.getElementById('idinfo').innerHTML = a + '는 중복된 아이디입니다.';
flag = false;
}
}
if (flag) {
document.getElementById('idinfo').innerHTML = a + '사용가능/저장완료';
list.push(a);
}
}
} else {
document.getElementById('idinfo').innerHTML = '사용불가능';
}
}
document.getElementById('duplextChkid').onclick = () => {
var a = document.getElementById('id').value;
for (let i = 0; i < list.length; i++) {
if (a.indexOf(list[i]) != -1) {
document.getElementById('idinfo').innerHTML = list[i];
break;
} else {
document.getElementById('idinfo').innerHTML = a + '(을/를) 찾을 수 없습니다.';
}
}
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.delform {
display: inline;
}
</style>
</head>
<body>
<input type="text" id="id" name="uid">
<input type="button" id="duplextChkid" value="검색">
<input type="button" id="idsave" value="입력"><br>
<span id="idinfo"></span>
<script>
// 추가문제 ----------------------------------------------------------------------------------
// 8. 단어를 입력받는 요소, 검색버튼, 입력버튼이 있다.
// 입력버튼을 누르면 배열에 저장, 검색버튼을 누르면 배열에서 찾아서
// html문서 아래에 출력, 검색어가 없으면 찾을 수 없음이라고 출력
var list = new Array();
document.getElementById('idsave').onclick = () => {
var a = document.getElementById('id').value;
var flag = true;
const regExp = /^(?=.*[a-zA-z])(?=.*[$`~!@$!%*#^.?&\\(\\)\-_=+]).{2,16}$/;
if (regExp.test(a)) {
if (list.length == 0) {
document.getElementById('idinfo').innerHTML = a + '사용가능/저장완료';
list.push(a);
} else {
for (let i = 0; i < list.length; i++) {
if (list[i] == a) {
document.getElementById('idinfo').innerHTML = a + '는 중복된 아이디입니다.';
flag = false;
}
}
if (flag) {
document.getElementById('idinfo').innerHTML = a + '사용가능/저장완료';
list.push(a);
}
}
} else {
document.getElementById('idinfo').innerHTML = '사용불가능';
}
}
document.getElementById('duplextChkid').onclick = () => {
var a = document.getElementById('id').value;
for (let i = 0; i < list.length; i++) {
if (a.indexOf(list[i]) != -1) {
document.getElementById('idinfo').innerHTML = list[i] + "<form class='delform'>" +
"<input type='hidden' value=" + (i + 1) + " id='no'>" +
"<input type='button' onclick='delList(no.value)' value='delete'>" +
" </form>";
break;
} else {
document.getElementById('idinfo').innerHTML = a + '(을/를) 찾을 수 없습니다.';
}
}
}
function delList(index) {
alert(list[index - 1] + '(을/를) 삭제하였습니다.');
list.splice(index - 1, 1);
idinfo.innerHTML = ''
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=,, initial-scale=1.0">
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<title>Document</title>
</head>
<body>
<h1 id="h1main">자바스크립트에서 제어하기 </h1>
<hr>
<ul>
<li class="li1"> 첫번재 </li>
<li class="li1"> 두번재 </li>
<li class="li1"> 세번재 </li>
</ul>
<div>
<ul>
<li> 첫번재 -나</li>
<li> 두번재 -나</li>
<li> 세번재 -나</li>
</ul>
</div>
- 가 -
<input type="button" id="gBtn" value="green">
<input type="button" id="rBtn" value="red">
<script>
// jquery과제 ----------------------------------------------
// 0. 위 소스에서 가부분에 버튼을 2개 만든다.
// 1개의 버튼의 value="green" 다른 한개는 value="red"
// 해당 되는 버튼을 누르면 나 부분이 버튼의 값으로 설정된 값의 색상으로 변경된다.
$('#gBtn').click(() => {
$('div ul').css('color', 'green');
})
$('#rBtn').click(() => {
$('div ul').css('color', 'red');
})
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<title>Document</title>
</head>
<body>
아이디<input type="text" id="id" name="uid">
<input type="button" id="duplextChkid" value="검색"><br>
입력하신 아이디는 <span id="idinfo"></span> 입니다.
<script>
// 공통 응용 문제 ----------------------------------------------------------------------------------
// 1.
// 입력하는 단어 위에서 지정한 span 태그에 출력하기.. 입력될때 마다 갱신되어 출력된다.
// 파일명 : t01.html
$('#duplextChkid').click(() => {
var a = $('#id').val();
$('#idinfo').html(a);
})
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<title>Document</title>
</head>
<body>
아이디<input type="text" id="id" name="uid">
<input type="button" id="duplextChkid" value="검색"><br>
입력하신 아이디는 <span id="idinfo"></span> 입니다.
<script>
// 공통 응용 문제 ----------------------------------------------------------------------------------
var badword = ['apple', 'banana'];
// 2. 입력하는 내용(문장 포함)이 badword단어가 포함되어 있으면 금지어가 포함되었다고 표시, 사용 가능하면 입력된 글이 나오게 한다.
// 파일명 : t02.html
var badword = ['apple', 'banana'];
$('#duplextChkid').click(() => {
var a = $('#id').val();
for (let i = 0; i < badword.length; i++) {
if (a.indexOf(badword[i]) != -1) {
alert('금지어가 포함되어 있습니다.');
} else {
$('#idinfo').html(a);
}
}
})
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<title>Document</title>
</head>
<body>
아이디<input type="text" id="id" name="uid">
<input type="button" id="duplextChkid" value="검색"><br>
<span id="idinfo"></span>
<script>
// 공통 응용 문제 ----------------------------------------------------------------------------------
// 3. 텍스트에 글자를 입력하고 버튼을 누른다. 버튼은 텍스트가 입력이 되어 있지 않다면 입력하시오라고 알림창을 뜨운다.
// 입력이 되어 있다면 사용가능이라고 표시한다.
// 파일명 : t03.html
$('#duplextChkid').click(() => {
var a = $('#id').val();
if (a == '') {
alert('아이디를 입력하세요')
} else {
$('#idinfo').html('사용가능');
}
})
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<title>Document</title>
</head>
<body>
아이디<input type="text" id="id" name="uid">
<input type="button" id="duplextChkid" value="검색"><br>
<span id="idinfo"></span>
<script>
// 공통 응용 문제 ----------------------------------------------------------------------------------
// 4. 위 3번 문제에서 특수문자 1개 이상 문자 1개 이상을 체크한다...
// 위 조건에 맞으면 사용가능 맞지 않으면 사용 불가능이라고 표시한다. <기본 for 사용 가능, 정규화 공부해서 사용가능
// 현업은 정규화를 사용>
$('#duplextChkid').click(() => {
var a = $('#id').val();
const regExp = /^(?=.*[a-zA-z])(?=.*[$`~!@$!%*#^.?&\\(\\)\-_=+]).{2,16}$/;
if (regExp.test(a)) {
$('#idinfo').html('사용가능');
} else {
$('#idinfo').html('사용불가능');
}
})
</script>
</body>
</html>
장바구니 구현
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body {
margin: 0;
}
* {
box-sizing: border-box;
}
p,
span {
margin: 0;
}
a {
color: black;
}
img {
display: block;
width: 80%;
height: 80px;
margin: auto;
}
.cart {
width: 80%;
margin: auto;
padding: 30px;
}
.cart ul {
background-color: whitesmoke;
padding: 30px;
margin-bottom: 50px;
border: whitesmoke solid 1px;
border-radius: 5px;
font-size: 13px;
font-weight: 300;
}
.cart ul :first-child {
color: limegreen;
}
table {
border-top: solid 1.5px black;
border-collapse: collapse;
width: 100%;
font-size: 14px;
}
thead {
text-align: center;
font-weight: bold;
}
tbody {
font-size: 12px;
text-align: center;
}
td {
padding: 15px 0px;
border-bottom: 1px solid lightgrey;
}
.cart__list__detail :nth-child(3) {
vertical-align: top;
}
.cart__list__detail :nth-child(3) a {
font-size: 12px;
}
.cart__list__detail :nth-child(3) p {
margin-top: 6px;
font-weight: bold;
}
.cart__list__smartstore {
font-size: 12px;
color: gray;
}
.cart__list__option {
vertical-align: top;
padding: 20px;
}
.cart__list__option p {
margin-bottom: 25px;
position: relative;
}
.cart__list__option p::after {
content: "";
width: 90%;
height: 1px;
background-color: lightgrey;
left: 0px;
top: 25px;
position: absolute;
}
.cart__list__optionbtn {
background-color: white;
font-size: 10px;
border: lightgrey solid 1px;
padding: 7px;
}
.cart__list__detail :nth-child(4),
.cart__list__detail :nth-child(5),
.cart__list__detail :nth-child(6) {
border-left: 2px solid whitesmoke;
}
.cart__list__detail :nth-child(5),
.cart__list__detail :nth-child(6) {
text-align: center;
}
.cart__list__detail :nth-child(5) button {
background-color: limegreen;
color: white;
border: none;
border-radius: 5px;
padding: 4px 8px;
font-size: 12px;
margin-top: 5px;
}
.price {
font-weight: bold;
}
.cart__mainbtns {
width: 420px;
height: 200px;
padding-top: 40px;
display: block;
margin: auto;
}
.cart__bigorderbtn {
width: 200px;
height: 50px;
font-size: 16px;
margin: auto;
border-radius: 5px;
}
.cart__bigorderbtn.left {
background-color: white;
border: 1px lightgray solid;
}
.cart__bigorderbtn.right {
background-color: limegreen;
color: white;
border: none;
}
input[type=number]::-webkit-inner-spin-button {
opacity: 1
}
</style>
</head>
<body>
<section class="cart">
<div class="cart__information">
<ul>
<li>장바구니 상품은 최대 30일간 저장됩니다.</li>
<li>가격, 옵션 등 정보가 변경된 경우 주문이 불가할 수 있습니다.</li>
<li>오늘출발 상품은 판매자 설정 시점에 따라 오늘출발 여부가 변경될 수 있으니 주문 시 꼭 다시 확인해 주시기 바랍니다.</li>
</ul>
</div>
<table class="cart__list">
<form>
<thead>
<tr>
<td><input type="checkbox" id="allChk" onchange="allChk1()"></td>
<td>상품정보</td>
<td>옵션</td>
<td>상품금액</td>
<td>배송비</td>
</tr>
<tr id="hidden">
<td colspan="5"> 장바구니가 비어있습니다. 물건을 주문해주세요.</td>
</tr>
</thead>
<tbody id="cart__list">
<!-- <tr class="cart__list__detail">
<td><input type="checkbox"></td>
<td> </td>
<td class="cart__list__option">
</td>
<td><span class="price"></span><br>
</td>
<td></td>
</tr>
<tr class="cart__list__detail">
<td style="width: 2%;"><input type="checkbox"></td>
<td style="width: 40%;">
</td>
<td class="cart__list__option" style="width: 27%;">
</td>
<td style="width: 15%;"><span class="price"></span><br>
</td>
<td style="width: 15%;"></td>
</tr>-->
</tbody>
<tfoot>
<tr>
<td colspan="2"><input type="checkbox"> <input type="button" class="cart__list__optionbtn"
onclick="delRow()" value="선택상품삭제">
<button class="cart__list__optionbtn">선택상품 찜</button>
</td>
<td></td>
<td style="text-align: center;"> 선택상품금액 <span id="allGoods"></span> + 총 배송비 <span id="allDlv"></span></td>
<td style="text-align: center; color: limegreen; border-left: 1px lightgray solid;"> 주문금액 <span id="allPri"></span></td>
</tr>
</tfoot>
</form>
</table>
<table class="buyGoods">
<form>
<thead>
<tr>
<td>상품정보</td>
<td>옵션</td>
<td>상품금액</td>
<td>배송비</td>
</tr>
</thead>
<tbody>
<tr class="cart__list__detail">
<td style="width: 40%;"><input type="text" id="goodsInfo" size="40"></td>
<td class="cart__list__option" style="width: 27%;">
상품 주문 수량<input type="number" id="goodsCnt" min="1" value="1" style="width: 40px;">개
</td>
<td style="width: 15%;"><span class="price"><input type="text" id="goodsPrice" size="10">원</span>
</td>
<td style="width: 15%;"><input type="text" id="goodsDlv" size="10"></td>
</tr>
</tbody>
</form>
</table>
<div class="cart__mainbtns">
<button class="cart__bigorderbtn left">쇼핑 계속하기</button>
<button class="cart__bigorderbtn right" onclick="addRow()">주문하기</button>
</div>
</section>
</body>
<script>
addRow = () => {
document.getElementById('hidden').style.display = 'none';
const table = document.getElementById('cart__list');
const newRow = table.insertRow(0);
const newCell0 = newRow.insertCell(0);
const newCell1 = newRow.insertCell(1);
const newCell2 = newRow.insertCell(2);
const newCell3 = newRow.insertCell(3);
const newCell4 = newRow.insertCell(4);
newCell0.innerHTML = "<input type='checkbox' onchange = 'showPri()' checked>"
newCell1.innerText = document.getElementById("goodsInfo").value;
newCell2.innerHTML = '상품 주문 수량' + '<input type="number" id = "cnt" min="1" value=' + document.getElementById("goodsCnt").value + ' style="width: 40px;">개'
newCell3.innerText = document.getElementById("goodsPrice").value * document.getElementById("goodsCnt").value;
newCell4.innerText = document.getElementById("goodsDlv").value;
document.getElementById('allChk').checked = true;
showPri();
}
delRow = () => {
const table = document.getElementById('cart__list');
for (let i = 0; i < table.rows.length; i++) {
var chkBox = table.rows[i].cells[0].childNodes[0].checked;
if (chkBox) {
table.deleteRow(i);
i--;
}
}
if(table.rows.length == 0){
document.getElementById('hidden').style.display = '';
}
showPri();
}
showPri = () => {
const table = document.getElementById('cart__list');
var allGoods = 0;
var allDlv = 0;
for (let i = 0; i < table.rows.length; i++) {
var chkBox = table.rows[i].cells[0].childNodes[0].checked;
if(chkBox){
var goodsPri = table.rows[i].cells[3].innerText;
// var goodsCnt = document.getElementById('cnt').value;
// console.log(goodsCnt);
allGoods += parseInt(goodsPri, 10)
// *parseInt(goodsCnt,10)
}
}
for (let i = 0; i < table.rows.length; i++) {
var chkBox = table.rows[i].cells[0].childNodes[0].checked;
var dlvPri = table.rows[i].cells[4].innerText;
if(chkBox){
if(dlvPri == '무료'){
dlvPri = 0;
}
allDlv += parseInt(dlvPri, 10);
}
}
document.getElementById('allGoods').innerText = allGoods;
document.getElementById('allDlv').innerText = allDlv;
document.getElementById('allPri').innerText = allGoods + allDlv;
}
allChk1 = () => {
const table = document.getElementById('cart__list');
for (let i = 0; i < table.rows.length; i++) {
if(document.getElementById('allChk').checked){
table.rows[i].cells[0].childNodes[0].checked = true;
}else{
table.rows[i].cells[0].childNodes[0].checked = false;
}
}
showPri();
}
</script>
</html>