jquery를 사용하여 특정 값을 텍스트 상자에 올바르게로드하려면 어떻게해야합니까? 아래 하나를 시도했지만 [object Object]
as 출력을 얻습니다 . 이것에 대해 가르쳐주세요. 저는 jquery를 처음 사용합니다.
proc = function(x, y) {
var str1 = $('#pid').value;
var str2 = $('#qtytobuy').value;
var str3 = $('#subtotal').load('compz.php?prodid=' + x + '&qbuys=' + y);
$('#subtotal').val(str3);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form name="yoh" method="get">
Product id: <input type="text" name="pid" value=""><br/>
Quantity to buy:<input type="text" name="qtytobuy" value="" onkeyup="proc(document.yoh.pid.value, this.value);"></br>
Subtotal:<input type="text" name="subtotal" id="subtotal" value=""></br>
<div id="compz"></div>
</form>
답변
URL에 대한 호출의 응답을 'compz.php?prodid=' + x + '&qbuys=' + y
텍스트 상자의 값으로 설정하고 싶 습니까? 그렇다면 다음과 같이해야합니다.
$.get('compz.php?prodid=' + x + '&qbuys=' + y, function(data) {
$('#subtotal').val(data);
});
참고: get()
코드에 두 가지 오류가 있습니다.
-
load()
두고 HTML 지정된 요소로 아약스에서 반환 :서버에서 데이터를로드하고 반환 된 HTML을 일치하는 요소에 배치합니다.
이 방법으로는 텍스트 상자의 값을 설정할 수 없습니다.
-
$(selector).load()
jQuery 객체를 반환 합니다 . 기본적으로 객체는[object Object]
문자열로 처리 될 때로 변환됩니다 .
추가 설명 :
URL이 5
.
HTML이 다음과 같은 경우 :
<div id="foo"></div>
다음의 결과
$('#foo').load('/your/url');
될거야
<div id="foo">5</div>
그러나 코드에는 입력 요소가 있습니다. 이론적으로 (유효한 HTML이 아니며 눈치 채신대로 작동하지 않음) 동등한 호출은
<input id="foo">5</input>
하지만 실제로는
<input id="foo" value="5" />
따라서 load()
. 당신은 다른 방법을 사용하고, 응답을 얻고 그것을 가치로 설정해야합니다.
답변
점을 유의 .value
속성이 자바 스크립트 기능입니다. jQuery를 사용하려면 다음을 사용하십시오.
$('#pid').val()
가치를 얻기 위해, 그리고 :
$('#pid').val('value')
설정합니다.
두 번째 문제와 관련하여 load
방법을 사용하여 HTML 값을 자동으로 설정하려고 시도한 적이 없습니다 . 확실히 다음과 같이 할 수 있습니다.
$('#subtotal').load( 'compz.php?prodid=' + x + '&qbuys=' + y, function(response){ $('#subtotal').val(response);
});
위의 코드는 테스트되지 않았습니다.
답변
.val ()은 현재 선택된 값을 선택하기 위해 선택과 함께 작동한다는 점을 지적하고 싶습니다.