为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript,通过 2 个事件更新值并连接

Javascript,通过 2 个事件更新值并连接

慕的地6264312 2021-10-21 10:23:25
一个简单的问题。我有 2 个控制更改事件。我有第一个事件:ctrlProducto_tipo.on  ('change', function(e){  if (this.getValue()== 'Up'){    var strProducto = 'U';}  if (this.getValue()== 'Down'){    var strProducto = 'D';}  if (this.getValue()== 'Left'){    var strProducto = 'L';}  if (this.getValue()== 'Right'){    var strProducto = 'R';}  ctrlTest1.setValue(strProducto);});当我选择“向下”时,我的text1.textfield“D”中有在我要显示的第二个事件中Test2.textbox:ctrlEspesor.on  ('keyup', function(e){if (this.getValue()!== ''){var strEspesor = ctrlEspesor.getValue();}ctrlTest2.setValue(strEspesor);当我输入'4'时,我有'4'。这两个事件有效。但是现在我尝试连接strProducto和strEspesor到ctrlTest3.textbox(在ctrlTest1&之前不显示ctrlTest2)。但是每次用户更改两个值之一时,我都需要ctrlText3即时更新。我试试这个,没有成功。var valueFinal = strProducto.concat(strEspesor);ctrlTest3.setValue(valueFinal);示例ctrlTest3:'D4'欢迎提供大帮助,谢谢.....
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

使用 valueFinal,您不能在函数内调用 strProducto 和 strEspesor 来解决作用域问题,解决方案是全局设置有问题的两个变量。


var strProducto;  //globasl

ctrlProducto_tipo.on  ('change', function(e){

    if (this.getValue()== 'Up'){

        strProducto = 'U';}

    if (this.getValue()== 'Down'){

        strProducto = 'D';}

    if (this.getValue()== 'Left'){

        strProducto = 'L';}

    if (this.getValue()== 'Right'){

        strProducto = 'R';}

ctrlTest1.setValue(strProducto);

});


var strEspesor; //global

ctrlEspesor.on  ('keyup', function(e){

    if (this.getValue()!== ''){

        strEspesor = ctrlEspesor.getValue();}

ctrlTest2.setValue(strEspesor);



var valueFinal = strProducto.concat(strEspesor);

ctrlTest3.setValue(valueFinal);


查看完整回答
反对 回复 2021-10-21
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

我试图理解你的意思。在codepen 上检查一下。


Javascript


var select = document.getElementById('select');

var txt1 = document.getElementById('text1');

var txt2 = document.getElementById('text2');

var txt3 = document.getElementById('text3');


select.addEventListener('change', (e)=>{

  txt1.value = e.target.value;

  txt3.value = txt1.value + txt2.value;

})


txt2.addEventListener('keyup', (e)=>{

  txt3.value = txt1.value + txt2.value;

})

HTML部分


  <select id="select">

    <option value="u">Up</option>

    <option value="d">Down</option>

    <option value="l">Left</option>

    <option value="r">Right</option>

  </select><br>

  <input type="text" id="text1"><br>

  <input type="text" id="text2"><br>

  <input type="text" id="text3">


查看完整回答
反对 回复 2021-10-21
  • 2 回答
  • 0 关注
  • 222 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号