jQuery on Change의 선택 값 가져오기
이렇게 함으로써 선택 입력의 가치를 얻을 수 있다는 인상을 받았습니다.$(this).val();그리고 적용.onchange선택 필드에 대한 매개 변수입니다.
제가 아이디를 참조해야만 작동하는 것 같습니다.
이거 어떻게 하는 거예요?
해보세요
$('select').on('change', function() {
alert( this.value );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="1">One</option>
<option value="2">Two</option>
</select>
변경 시 이벤트에서 참조할 수도 있습니다.
function getval(sel)
{
alert(sel.value);
}
<select onchange="getval(this);">
<option value="1">One</option>
<option value="2">Two</option>
</select>
이것은 저에게 도움이 됩니다.
선택할 경우:
$('select_tags').on('change', function() {
alert( $(this).find(":selected").val() );
});
라디오/확인란의 경우:
$('radio_tags').on('change', function() {
alert( $(this).find(":checked").val() );
});
저는 이 $(this).val();을 수행함으로써 선택 입력의 값을 얻을 수 있다는 인상을 받았습니다.
이 기능은 눈에 띄지 않게 가입한 경우에 작동합니다(권장 접근 방식).
$('#id_of_field').change(function() {
// $(this).val() will work here
});
을 이용하면onselect현재 요소에 대한 참조를 전달하는 데 필요한 스크립트와 마크업을 혼합합니다.
onselect="foo(this);"
다음과 같은 경우:
function foo(element) {
// $(element).val() will give you what you are looking for
}
이벤트 위임 방법을 사용해 보십시오. 이 방법은 거의 모든 경우에 적용됩니다.
$(document.body).on('change',"#selectID",function (e) {
//doStuff
var optVal= $("#selectID option:selected").val();
});
$('#select_id').on('change', function()
{
alert(this.value); //or alert($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="select_id">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
</select>
화살표 기능은 기능과 범위가 다릅니다.this.value화살표 함수에 대해 정의되지 않은 값을 제공합니다.사용 수정하기
$('select').on('change',(event) => {
alert( event.target.value );
});
$('#select-id').change(function() {
console.log($(this).val());
});
이것을 사용해 볼 수 있습니다(jQuery 사용)-
$('select').on('change', function()
{
alert( this.value );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
</select>
아니면 간단한 자바스크립트를 사용할 수도 있습니다.
function getNewVal(item)
{
alert(item.value);
}
<select onchange="getNewVal(this);">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
</select>
jChange 이벤트를 사용하여 선택한 HTML 요소의 값을 가져옵니다.
$(document).ready(function () {
$('body').on('change','#select_box', function() {
$('#show_only').val(this.value);
});
});
<!DOCTYPE html>
<html>
<title>jQuery Select OnChnage Method</title>
<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
<select id="select_box">
<option value="">Select One</option>
<option value="One">One</option>
<option value="Two">Two</option>
<option value="Three">Three</option>
<option value="Four">Four</option>
<option value="Five">Five</option>
</select>
<br><br>
<input type="text" id="show_only" disabled="">
</body>
</html>
이것이 저에게 효과가 있었습니다.다른 모든 것을 시도했지만 실패했습니다.
<html>
<head>
<title>Example: Change event on a select</title>
<script type="text/javascript">
function changeEventHandler(event) {
alert('You like ' + event.target.value + ' ice cream.');
}
</script>
</head>
<body>
<label>Choose an ice cream flavor: </label>
<select size="1" onchange="changeEventHandler(event);">
<option>chocolate</option>
<option>strawberry</option>
<option>vanilla</option>
</select>
</body>
</html>
Mozilla에서 가져옴
모든 선택 항목에 대해 이 함수를 호출합니다.
$('select').on('change', function()
{
alert( this.value );
});
하나만 선택할 경우
$('#select_id')
jQuery 사이트를 찾습니다.
HTML:
<form>
<input class="target" type="text" value="Field 1">
<select class="target">
<option value="option1" selected="selected">Option 1</option>
<option value="option2">Option 2</option>
</select>
</form>
<div id="other">
Trigger the handler
</div>
Javascript:
$( ".target" ).change(function() {
alert( "Handler for .change() called." );
});
jQuery의 예:
모든 텍스트 입력 요소에 유효성 테스트를 추가하는 방법
$( "input[type='text']" ).change(function() {
// Check input( $( this ).val() ) for validity here
});
jQuery(document).ready(function(){
jQuery("#id").change(function() {
var value = jQuery(this).children(":selected").attr("value");
alert(value);
});
})
제가 BS4, 타임리프, 스프링 부트로 개발한 예를 공유하겠습니다.
저는 두 개의 SELECT를 사용하고 있는데, 두 번째("하위 주제")는 첫 번째("주제") 선택에 따라 AJAX 호출로 채워집니다.
먼저, 타임리프 스니펫:
<div class="form-group">
<label th:for="topicId" th:text="#{label.topic}">Topic</label>
<select class="custom-select"
th:id="topicId" th:name="topicId"
th:field="*{topicId}"
th:errorclass="is-invalid" required>
<option value="" selected
th:text="#{option.select}">Select
</option>
<optgroup th:each="topicGroup : ${topicGroups}"
th:label="${topicGroup}">
<option th:each="topicItem : ${topics}"
th:if="${topicGroup == topicItem.grp} "
th:value="${{topicItem.baseIdentity.id}}"
th:text="${topicItem.name}"
th:selected="${{topicItem.baseIdentity.id==topicId}}">
</option>
</optgroup>
<option th:each="topicIter : ${topics}"
th:if="${topicIter.grp == ''} "
th:value="${{topicIter.baseIdentity.id}}"
th:text="${topicIter.name}"
th:selected="${{topicIter.baseIdentity?.id==topicId}}">
</option>
</select>
<small id="topicHelp" class="form-text text-muted"
th:text="#{label.topic.tt}">select</small>
</div><!-- .form-group -->
<div class="form-group">
<label for="subtopicsId" th:text="#{label.subtopicsId}">subtopics</label>
<select class="custom-select"
id="subtopicsId" name="subtopicsId"
th:field="*{subtopicsId}"
th:errorclass="is-invalid" multiple="multiple">
<option value="" disabled
th:text="#{option.multiple.optional}">Select
</option>
<option th:each="subtopicsIter : ${subtopicsList}"
th:value="${{subtopicsIter.baseIdentity.id}}"
th:text="${subtopicsIter.name}">
</option>
</select>
<small id="subtopicsHelp" class="form-text text-muted"
th:unless="${#fields.hasErrors('subtopicsId')}"
th:text="#{label.subtopics.tt}">select</small>
<small id="subtopicsIdError" class="invalid-feedback"
th:if="${#fields.hasErrors('subtopicsId')}"
th:errors="*{subtopicsId}">Errors</small>
</div><!-- .form-group -->
모델 컨텍스트에 저장된 항목 목록을 반복하여 모든 그룹을 해당 항목과 함께 표시하고 이후 그룹이 없는 모든 항목을 표시합니다.BaseIdentity는 @Embedded 복합 키 BTW입니다.
다음은 변경사항을 처리하는 jQuery입니다.
$('#topicId').change(function () {
selectedOption = $(this).val();
if (selectedOption === "") {
$('#subtopicsId').prop('disabled', 'disabled').val('');
$("#subtopicsId option").slice(1).remove(); // keep first
} else {
$('#subtopicsId').prop('disabled', false)
var orig = $(location).attr('origin');
var url = orig + "/getsubtopics/" + selectedOption;
$.ajax({
url: url,
success: function (response) {
var len = response.length;
$("#subtopicsId option[value!='']").remove(); // keep first
for (var i = 0; i < len; i++) {
var id = response[i]['baseIdentity']['id'];
var name = response[i]['name'];
$("#subtopicsId").append("<option value='" + id + "'>" + name + "</option>");
}
},
error: function (e) {
console.log("ERROR : ", e);
}
});
}
}).change(); // and call it once defined
변경의 초기 호출()은 페이지를 다시 로드할 때 또는 백엔드의 일부 초기화에 의해 값이 미리 선택된 경우에 실행되도록 합니다.
BTW: 저는 BS4가 불필요한 빈 필드를 녹색으로 표시하는 것을 좋아하지 않았기 때문에 "수동" 양식 검증("is-valid"/"is-valid" 참조)을 사용하고 있습니다.하지만 그것은 이 Q의 범위를 넘어선 것이고 당신이 관심이 있다면 저도 게시할 수 있습니다.
이러한 기능이 작동하지 않는 경우 DOM이 로드되지 않았고 요소를 아직 찾지 못했기 때문일 수 있습니다.
수정하려면 본문 끝에 스크립트를 배치하거나 문서 준비 사용
$.ready(function() {
$("select").on('change', function(ret) {
console.log(ret.target.value)
}
})
JS가 있는 경우
let select=document.querySelectorAll('select')
select.forEach(function(el) {
el.onchange = function(){
alert(this.value);
}}
)
저는 새로운 아이디어에 도움이 될 예가 있습니다.나는 이것이 누구에게나 도움이 되기를 바랍니다.
$('#editpricelist_box').change(function ($e){
$('input[name="edit_unit_price"]').val(parseFloat(this.val()).toFixed(2));
console.log(this.val());
});
전체 사용자 지정 헤더 기능이 필요한 사용자를 추가합니다.
function addSearchControls(json) {
$("#tblCalls thead").append($("#tblCalls thead tr:first").clone());
$("#tblCalls thead tr:eq(1) th").each(function (index) {
// For text inputs
if (index != 1 && index != 2) {
$(this).replaceWith('<th><input type="text" placeholder=" ' + $(this).html() + ' ara"></input></th>');
var searchControl = $("#tblCalls thead tr:eq(1) th:eq(" + index + ") input");
searchControl.on("keyup", function () {
table.column(index).search(searchControl.val()).draw();
})
}
// For DatePicker inputs
else if (index == 1) {
$(this).replaceWith('<th><input type="text" id="datepicker" placeholder="' + $(this).html() + ' ara" class="tblCalls-search-date datepicker" /></th>');
$('.tblCalls-search-date').on('keyup click change', function () {
var i = $(this).attr('id'); // getting column index
var v = $(this).val(); // getting search input value
table.columns(index).search(v).draw();
});
$(".datepicker").datepicker({
dateFormat: "dd-mm-yy",
altFieldTimeOnly: false,
altFormat: "yy-mm-dd",
altTimeFormat: "h:m",
altField: "#tarih-db",
monthNames: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
dayNamesMin: ["Pa", "Pt", "Sl", "Ça", "Pe", "Cu", "Ct"],
firstDay: 1,
dateFormat: "yy-mm-dd",
showOn: "button",
showAnim: 'slideDown',
showButtonPanel: true,
autoSize: true,
buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif",
buttonImageOnly: false,
buttonText: "Tarih Seçiniz",
closeText: "Temizle"
});
$(document).on("click", ".ui-datepicker-close", function () {
$('.datepicker').val("");
table.columns(5).search("").draw();
});
}
// For DropDown inputs
else if (index == 2) {
$(this).replaceWith('<th><select id="filter_comparator" class="styled-select yellow rounded"><option value="select">Seç</option><option value="eq">=</option><option value="gt">>=</option><option value="lt"><=</option><option value="ne">!=</option></select><input type="text" id="filter_value"></th>');
var selectedOperator;
$('#filter_comparator').on('change', function () {
var i = $(this).attr('id'); // getting column index
var v = $(this).val(); // getting search input value
selectedOperator = v;
if(v=="select")
table.columns(index).search('select|0').draw();
$('#filter_value').val("");
});
$('#filter_value').on('keyup click change', function () {
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == '13') {
var i = $(this).attr('id'); // getting column index
var v = $(this).val(); // getting search input value
table.columns(index).search(selectedOperator + '|' + v).draw();
}
});
}
})
}
언급URL : https://stackoverflow.com/questions/11179406/jquery-get-value-of-select-onchange
'programing' 카테고리의 다른 글
| pip 설치: 해당 디렉터리의 권한 및 소유자를 확인하십시오. (0) | 2023.07.18 |
|---|---|
| ASP.net Repeater 현재 인덱스, 포인터 또는 카운터 가져오기 (0) | 2023.07.13 |
| C를 배우는 흥미로운 프로젝트? (0) | 2023.07.13 |
| [UISCreen mainScreen]입니다.iOS8에서 방향 의존적이 되는 bounds.size? (0) | 2023.07.13 |
| 캐시와 세션의 이점 (0) | 2023.07.13 |