가 여기에 몇 가지 문제가 있지만, 코드와는 아무 상관이없는 일을 시작 할 수 있습니다. JSFiddle에서 당신은 자바 스크립트를 배치 할 위치를 선택 얻을 - 기본 그래서 원래 jsfiddle의 출력에서 생산되는 자바 스크립트의 모습 onload
입니다 : 함수를 의미
$(window).load(function(){
function amtcal(id)
{
var ntwt=$("#a1").val();
var rval=$("#aa1").val();
var product=rval*ntwt;
$("#baa1").val(product);
}
});
그 윈도우로드 함수 내에서 범위가되며, 그래서 DOM으로부터 완전히 접근 할 수 없다. 따라서 오류 :
ReferenceError: amtcal is not defined
왼쪽의 "줄 바꿈 없음"을 선택하면 문제를 해결할 수 있습니다.
실제 코드는 무엇이 문제입니까? 당신이 숫자로 변환해야하므로,
var ntwt=$("#a1").val();
var rval=$("#aa1").val();
그게 전부 좋아,하지만 텍스트 상자는 문자열을 반환하고, 문자열을 곱 할 수 없습니다 문제를 발견하기 쉬운 당신이 jQuery를 사용하여 두 개의 편집 가능한 텍스트 상자의 내용을 읽고 있다는 것입니다 . 정수를 원한다고 가정합니다 :
var ntwt= parseInt($("#a1").val(),10);
var rval= parseInt($("#aa1").val(),10);
이 시점에서 두 번째 텍스트 상자를 먼저 편집하는 한이 기능이 작동합니다.당신은 두 텍스트 상자에서 동일한 기능을 호출해야합니다 :이 시점에서
<input placeholder="Net Wt" id="a1" onchange="amtcal(this.id)">
<input id="aa1" placeholder="Rate" style="width:50px;" onchange="amtcal(this.id)">
모든 작품 : 그러나 http://jsfiddle.net/8JA4s/
을, 당신이 jQuery를 바닐라 자바 스크립트/DOM을 혼합하고 있습니다. 종종 혼란을 막기 위해 하나 또는 다른 것을 고수하는 것이 더 쉽습니다.
이 작업을 수행하는 일반적인 방법은이 방법을 수행 할 때, 물론,
$('#a1, #aa1').on('change',function(){
var ntwt=parseInt($("#a1").val(),10);
var rval=parseInt($("#aa1").val(),10);
var product=rval*ntwt;
$("#baa1").val(product);
});
jQuery를 .on
당신을 사용하여 이벤트 핸들러를 부착 DOM에 이벤트 핸들러를 제거하는 것입니다. 이
은이어야합니다. 작동하려면 jsfiddle에
onLoad
을 입력해야합니다.
http://jsfiddle.net/8JA4s/2/
코드를 질문에 넣고 "작동하지 않음"을 정의하십시오. –
설명 이니셜로 시작하는 것이 헷갈릴 정도는 아닙니다.) – Jamiec