我试图在表单上选择一个值时调用一个简单的函数。问题是我无法访问我可以直接在字段上设置功能的代码。
如果我有权访问,我只需直接在元素内写入onChange事件。有没有办法在脚本中调用元素并在那里应用onChange事件?
这是我目前的脚本。我试图从单独的字段中取两个值并将其总和应用于另一个字段。
function changeQty() { var productName = MainForm.elements [“ProductCode”]。value; var Quantity1 = MainForm.elements [“SELECT ___”+ productName +“___ 23”]。value; var Quantity2 = MainForm.elements [“SELECT ___”+ productName +“___ 24”]。value; var QtyUpdated = Quantity1 + Quantity2; MainForm.elements [“QTY。”+ productName] .value = QtyUpdated; }这是我希望函数触发的表单元素。我只能访问可以插入脚本的标题,但不能访问页面上的元素。另外表单已经有一些其他的javascript。我可以进行两次onChange事件吗?
-12.00
-11.50 -11.00 -10.50 -10.00 -9.50 -9.00 -8.50 -8.00 -7.50
-7.00 -6.50 -6.00 -5.75 -5.50 -5.25 -5.00 -4.75 -4.50
-4.25 -4.00 -3.75 -3.50 -3.25 -3.00 -2.75 -2.50 -2.25
-2.00 -1.75 -1.50 -1.25 -1.00 -0.75 -0.50 +0.50 0.75
1.00 +1.25 +1.50 +1.75 +2.00 +2.25 +2.50 +2.75 3.00
3.25 +3.50 +3.75 +4.00 +4.25 +4.50 +4.75 +5.00 5.25
5.50 5.75 +6.00
答案 0 :(得分:0)
您感兴趣的元素是否设置了ID或名称字段。我昨天为我网站上的表格解决了这个问题。您可以使用jquery轻松完成此任务。
添加以下内容:
$(document).ready(function(){
$("#id_cities_0").change(function(){
//call your function here
});
})
将id_cities_0替换为您可以通过查看来源找到的元素的ID。确保id不会改变。
如果元素没有id,请回写。
答案 1 :(得分:0)
如果没有其他库依赖,这很容易做到。首先是你的问题......
问:我可以进行两次onChange事件 A :是的,如果您使用addEventListener / attachEvent注册,请参阅有关事件的quirksmode primer。您可以在任何类型的活动中获得> 1。
在事件加载后将事件附加到页面上的某些内容:
if (window.addEventListener) {
window.addEventListener('load',prep,false);
} else if (window.attachEvent) {
window.attachEvent('onload',prep);
}
prep
是一个将changeQty
函数附加到页面中所需元素的函数:
function prep() {
/* Assuming your MainForm.elements process gets an element*/
var el=MainForm.elements["SELECT___"+productName+"___23"];
if (el.addEventListener) {
el.addEventListener('change',changeQty,false);
} else if (el.attachEvent) {
el.attachEvent('onchange',changeQty);
}
}
onload
/ load
将等待整个DOM加载,即脚本/ css / HTML和图形。只是一个警告 - 如果页面加载很复杂,它可能无法在页面呈现时立即生效。如果您可以控制HTML末尾的内容(</html>
之前),那么您可以使用以下内容解决此问题(而不是将prep
附加到load
并定义prep
功能):
<script>
(function() {
/* Assuming your MainForm.elements process gets an element*/
var el=MainForm.elements["SELECT___"+productName+"___23"];
if (el.addEventListener) {
el.addEventListener('change',changeQty,false);
} else if (el.attachEvent) {
el.attachEvent('onchange',changeQty);
}
}());
</script>
</body>
</html>