首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将javascript函数嵌入到另一个javascript函数中

将javascript函数嵌入到另一个javascript函数中
EN

Stack Overflow用户
提问于 2018-09-14 03:23:26
回答 2查看 57关注 0票数 -2

我有一个带有条件字段的表单,只有当用户选择“other”的单选按钮时才会显示该字段。如果我删除这个字段上的条件,我原来的javascript函数可以工作;但是,使用条件我不能让它正确地触发。

表单有一个事件"cf.add“,它在条件字段可见时触发,使用这个jquery,我在控制台中得到了正确的响应:

代码语言:javascript
复制
jQuery( document ).on( 'cf.add', function(){
    console.log('cf.add triggered' );
});

如果我删除条件,以便在呈现页面时呈现该字段,我将在该字段中获得正确的响应,即添加一个'$':

代码语言:javascript
复制
$("#fld_3169487_4").on("blur", handleChange);
function handleChange() {
    var myValue = document.getElementById("fld_3169487_4").value;
	if (myValue.indexOf("$") != 0)
	{
		myValue = "$" + myValue;
	}
	document.getElementById("fld_3169487_4").value = myValue;
}

我试着将第二个函数放在第一个函数中,但没有成功。当我尝试组合这两者时,我觉得我添加它们的顺序不正确,但我不确定我做错了什么。

我还尝试在'cf.add‘触发器上调用函数handleChange(),但对我来说也不起作用。

EN

回答 2

Stack Overflow用户

发布于 2018-09-15 05:27:35

在玩了一段时间后,我想通了:

代码语言:javascript
复制
jQuery( document ).on( 'cf.add', function(){
var otherField = $("#fld_3169487_3");
otherField.focus();
var dollarValue;

$(otherField).on("blur", function() {
    dollarValue = otherField.val();
    if (dollarValue.indexOf("$") != 0) {
        dollarValue = "$ " + dollarValue;
    }
    $(otherField).val(dollarValue);
});

});

票数 0
EN

Stack Overflow用户

发布于 2018-09-14 03:35:59

由于cf.add是由表单发布的自定义元素,因此您可以让其他元素订阅事件:

代码语言:javascript
复制
$("#fld_3169487_4").on('cf.add', function(event){
    if ($(this).val().indexOf("$") != 0)
    {
        $(this).val("$" +  $(this).val());
    }
});

使用$(this),我们可以只针对事件所附加的字段。此外,可以通过event参数将来自事件发布服务器的数据传递给订阅服务器。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52320478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档