httpMethod를 전역변수로 사용해도되지만,
그보다는 input hidden 을 하나 선언해두고 on click 이벤트마다 input에 설정하거나
attribute를 활용하는 방법을 추천드립니다.
1. input hidden 활용
<input type="hidden" id="httpMethod" value="">
<button class="btn btn-secondary dropdown-toggle" id="method_status" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Method
</button>
<ul id="method_type" class="dropdown-menu" role="menu" aria-labelledby="searchType">
<li role="presentation">
<a class="dropdown-item" href="#" value="GET">GET</a>
</li>
<li role="presentation">
<a class="dropdown-item" href="#" value="POST">POST</a>
</li>
</ul>
$(function () {
function send() {
var httpMethod = $('#httpMethod').val();
}
$('#method_type li > a').on('click', function () {
$('#method_status').text($(this).text());
var httpMethod = $(this).attr('value');
console.log('선택된 메소드: ' + httpMethod);
$('#httpMethod').val(httpMethod);
});
});
2. attribute or data 활용
<button class="btn btn-secondary dropdown-toggle" id="method_status" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-method="">
Method
</button>
<ul id="method_type" class="dropdown-menu" role="menu" aria-labelledby="searchType">
<li role="presentation">
<a class="dropdown-item" href="#" value="GET">GET</a>
</li>
<li role="presentation">
<a class="dropdown-item" href="#" value="POST">POST</a>
</li>
</ul>
$(function () {
function send() {
var httpMethod = $('#method_status').attr('data-method');
// or
// var httpMethod = $('#method_status').data('method');
}
$('#method_type li > a').on('click', function () {
$('#method_status').text($(this).text());
var httpMethod = $(this).attr('value');
console.log('선택된 메소드: ' + httpMethod);
$('#method_status').attr('data-method', httpMethod);
// or
// $('#method_status').data('method', httpMethod);
});
});