[javascript] jquery에서 텍스트 상자 값을 설정하는 방법

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')

설정합니다.

http://api.jquery.com/val/

두 번째 문제와 관련하여 load방법을 사용하여 HTML 값을 자동으로 설정하려고 시도한 적이 없습니다 . 확실히 다음과 같이 할 수 있습니다.

$('#subtotal').load( 'compz.php?prodid=' + x + '&qbuys=' + y, function(response){ $('#subtotal').val(response);
});

위의 코드는 테스트되지 않았습니다.

http://api.jquery.com/load/


답변

.val ()은 현재 선택된 값을 선택하기 위해 선택과 함께 작동한다는 점을 지적하고 싶습니다.


답변

시험

subtotal.value= 5 // some value


답변