我的表单上有一个按钮,它获取其他两个字段的值。问题是,如果我在输入其中一个字段后单击该按钮,但在单击该字段之前,它会在我输入该字段之前获取该字段的值(通常为空白)。我如何使用 Javascript 模拟点击该字段?我已经尝试在单击按钮时将焦点设置到不同的字段(在执行其余代码之前),但由于某种原因,它仍然采用该字段的旧值。
这是我的代码结构:
function btnCalculate_onClick() {
Xrm.Page.ui.controls.get("zipCodeFieldName").setFocus();
strStreet = Xrm.Page.getAttribute("streetFieldName").getValue();
strCity = Xrm.Page.getAttribute("cityFieldName").getValue();
strState = Xrm.Page.getAttribute("stateFieldName").getValue();
$.ajax({
url: 'https://maps.googleapis.com/maps/api/geocode/xml?address=' + strStreet + ',' + strCity + ',' + strState + '&sensor=false',
type: 'GET',
dataType: 'text',
timeout: 1000,
error: function() {
alert('Error loading XML document');
},
success: function(xml) {
// do something with xml
}
});
}
问题是 strCity 被识别为 null
,除非我在单击按钮之前先单击城市字段。
最佳答案
我用的就是这个
function blurActiveControl() {
var elid = document.activeElement.id;
if (elid && elid != null && elid != '') document.activeElement.blur();
}
不受支持,但安全有效,在您的情况下的用法是:
function btnCalculate_onClick() {
blurActiveControl();
// rest of code
}
关于javascript - 动态客户关系管理 : How to simulate clicking out of a field with Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36414875/