首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制由脚本自动填充的输入。

控制由脚本自动填充的输入。
EN

Stack Overflow用户
提问于 2017-10-04 20:01:06
回答 2查看 33关注 0票数 0

我有这个脚本,它检查变量的值是否与隐藏输入的值匹配,并返回一个confirmMessage。

var的值可能由另一个脚本手动或自动填充。

当它手动有一个结果时,但是当输入被一个脚本自动填充时,我没有得到确认消息。

代码语言:javascript
复制
  <script>
 $('#vr').on('keyup change', function() {
    var vr = document.getElementById('vr');
    var confirm_vr = document.getElementById('confirm_vr');
    var message = document.getElementById('confirmMessage');


    if(vr.value == confirm_vr.value){

        message.innerHTML = "MATCH";

    }else{

        message.innerHTML = "! Not match";

    }
});
</script>

<span id='confirmMessage' ></span>

<input id='vr' name='vr'  />

<input type='hidden' id='confirm_vr' name='confirm_vr'  />
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-04 20:33:39

如何设置输入值“使用脚本自动”?就靠document.getElementById('vr').value = 'hello'?作为最简单的解决方案,我建议将处理程序逻辑提取到全局函数中,并在通过代码更改输入时调用它:

代码语言:javascript
复制
<script>
  function processChange() {
    var vr = document.getElementById('vr');
    var confirm_vr = document.getElementById('confirm_vr');
    var message = document.getElementById('confirmMessage');
    if(vr.value == confirm_vr.value){
        message.innerHTML = "MATCH";
    }else{
        message.innerHTML = "! Not match";
    }
  };
  $(function() {
    $('#vr').on('keyup change', processChange);
  });
</script>

<span id='confirmMessage' ></span>
<input id='vr' name='vr'  />
<input type='hidden' id='confirm_vr' name='confirm_vr'  />

<script>
  $(function() {
    document.getElementById('vr').value = 'hello';
    processChange();
  });
</script>    
票数 0
EN

Stack Overflow用户

发布于 2017-10-05 15:00:09

添加另一个答案,因为@dhilt的答案要求您在每次添加新侦听器时更改设置输入值的代码。

代码语言:javascript
复制
$('#vr').on('keyup change', function() {
    var vr = document.getElementById('vr');
    var confirm_vr = document.getElementById('confirm_vr');
    var message = document.getElementById('confirmMessage');
    if(vr.value == confirm_vr.value){
        message.innerHTML = "MATCH";
    }else{
        message.innerHTML = "! Not match";

    }
});

$('#vr').on('keyup change', (e) => {
    // This will get called without the code that sets
    // input.value having to know about this handler
    console.log('Value changed', e);
});

$('button').on('click', function() {
    var vr = document.getElementById('vr');
    vr.value += 'X';
    // Notice that you don't need to know what handlers are set
    $(vr).trigger('change');
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id ="vr"/>

<span id='confirmMessage' ></span>

<input id='vr' name='vr'>

<input type='hidden' id='confirm_vr' name='confirm_vr' value="X"/>

<hr />

<button>Set text value</button>

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

https://stackoverflow.com/questions/46573231

复制
相关文章

相似问题

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