맨 처음에 “$”기호를 포함하는 텍스트 입력 필드를 갖고 싶습니다. 필드에 어떤 편집이 발생하더라도 기호가 영구적으로 유지되도록합니다.
숫자 만 입력하면 좋겠지 만 그건 멋진 추가 일뿐입니다.
답변
테두리없는 입력 필드 주위에 테두리가있는 범위를 사용하여 고정 접두사 또는 접미사가있는 입력 필드를 시뮬레이션하는 것이 좋습니다. 다음은 기본적인 킥오프 예입니다.
.currencyinput {
border: 1px inset #ccc;
}
.currencyinput input {
border: 0;
}
<span class="currencyinput">$<input type="text" name="currency"></span>
답변
상위 .input-icon
div를 사용하십시오 . 선택적으로 .input-icon-right
.
<div class="input-icon">
<input type="text">
<i>$</i>
</div>
<div class="input-icon input-icon-right">
<input type="text">
<i>€</i>
</div>
수직 아이콘 정렬 transform
및 top
한 세트 pointer-events
에 none
해당 클릭 입력에 집중되도록. padding
및 width
적절하게 조정하십시오 .
.input-icon {
position: relative;
}
.input-icon > i {
position: absolute;
display: block;
transform: translate(0, -50%);
top: 50%;
pointer-events: none;
width: 25px;
text-align: center;
font-style: normal;
}
.input-icon > input {
padding-left: 25px;
padding-right: 0;
}
.input-icon-right > i {
right: 0;
}
.input-icon-right > input {
padding-left: 0;
padding-right: 25px;
text-align: right;
}
허용되는 답변과 달리 오류가있을 때 빨간색 테두리와 같은 입력 유효성 검사 강조 표시가 유지됩니다.
Bootstrap 및 Font Awesome을 사용한 JSFiddle 사용 예
답변
입력 필드를 범위로 래핑 할 수 있습니다 position:relative;
. 그런 다음 :before
content:"€"
통화 기호 를 추가
하고 만듭니다 position:absolute
. JSFiddle 작동
HTML
<span class="input-symbol-euro">
<input type="text" />
</span>
CSS
.input-symbol-euro {
position: relative;
}
.input-symbol-euro input {
padding-left:18px;
}
.input-symbol-euro:before {
position: absolute;
top: 0;
content:"€";
left: 5px;
}
업데이트
텍스트 상자의 왼쪽 또는 오른쪽에 유로 기호를 넣으려면. JSFiddle 작동
HTML
<span class="input-euro left">
<input type="text" />
</span>
<span class="input-euro right">
<input type="text" />
</span>
CSS
.input-euro {
position: relative;
}
.input-euro.left input {
padding-left:18px;
}
.input-euro.right input {
padding-right:18px;
text-align:end;
}
.input-euro:before {
position: absolute;
top: 0;
content:"€";
}
.input-euro.left:before {
left: 5px;
}
.input-euro.right:before {
right: 5px;
}
답변
당신이 할 수 없기 때문에 ::before
함께 content: '$'
입력에와 절대 위치 요소를 추가하는 추가 HTML을 추가 – 나는 배경 SVG 인라인 CSS로 할 좋아한다.
다음과 같이 진행됩니다.
input {
width: 85px;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='16px' width='85px'><text x='2' y='13' fill='gray' font-size='12' font-family='arial'>$</text></svg>");
padding-left: 12px;
}
다음을 출력합니다.
참고 : 코드는 모두 한 줄에 있어야합니다. 최신 브라우저에서 지원은 꽤 훌륭하지만 테스트해야합니다.
답변
결국 유형을 숫자로 유지해야했기 때문에 CSS를 사용하여 절대 위치를 사용하여 입력 필드에 달러 기호를 넣었습니다.
<div>
<span style="position: absolute; margin-left: 1px; margin-top: 1px;">$</span>
<input type="number" style="padding-left: 8px;">
</div>
답변
텍스트 입력 필드 내부가 아닌 앞에 ‘$’를 넣으십시오. 제출 후 ‘$’를 구문 분석 할 필요가 없기 때문에 숫자 데이터에 대한 유효성 검사가 훨씬 쉬워집니다.
당신은 함께 할 수 JQuery.validate () (또는 다른), 핸들 통화 몇 가지 클라이언트 측 유효성 검사 규칙을 추가합니다. 그러면 입력 필드 안에 ‘$’를 넣을 수 있습니다. 그러나 보안을 위해 여전히 서버 측 유효성 검사를 수행해야하며 ‘$’를 제거해야하는 위치로 돌아갑니다.
