【问题标题】:Why cant I clear an input field with javascript created by Yii CRUD?为什么我不能用 Yii CRUD 创建的 javascript 清除输入字段?
【发布时间】:2023-03-31 09:17:01
【问题描述】:

php Yii的GRUD生成的字段:

<?= $form->field($model, 'productId')->textInput(['maxlength' => true]) ?>

firefox的html:

<input id="taolistforcreate-productid" class="form-control" name="TaolistForCreate[productId]" aria-required="true" aria-invalid="true" type="text">

用于清除字段的脚本:

$(document).ready(function () {
$("#taolistforcreate-productid").bind("paste",function(e){
    var pastedData = e.originalEvent.clipboardData.getData('text');
    var taoID=GetTaoID(pastedData);
    $("#taolistforcreate-productid").val('');//failed to clear the field 
    $("#taolistforcreate-productid").val(taoID);//succeed 
});
});

我也google了一堆其他的js代码,还是不行。

【问题讨论】:

  • 你能在你触发清除脚本的地方添加代码吗?
  • 您在此处粘贴的代码有语法错误。修复它,当您尝试触发它时检查控制台显示的内容,如果仍然无法正常工作 - 再次粘贴固定代码,但有问题(不在评论中) - 在 code 标签中
  • 修复了有问题的代码并重新粘贴。
  • 控制台是空的?你试过attr('value', '')而不是val('')吗?
  • attr('value', '') 无法工作。 Chrome 或 FF 中没有控制台错误。

标签: javascript php jquery yii


【解决方案1】:

可能是您对生成的 id 的访问不匹配所以

您可以尝试在输入字段中添加您的 id

<?= $form->field($model, 'productId')
         ->textInput(['id' => 'your_id','maxlength' => true]) ?>

在js中

 $("#your_id").val("");

【讨论】:

    【解决方案2】:
     $("#your_id").removeAttr("value");
    

    希望对你有帮助

    【讨论】:

      【解决方案3】:

      上帝,终于...问题解决了,在添加“return false;”之后进入我个人 onpaste 事件处理函数的底线!

      broswer actullay 触发了两次"onpaste"事件。我自己的函数处理后,相同的事件会被调度到jquery的默认事件处理路由,也就是说剪贴板的内容会被粘贴两次,因此问题.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-04
        • 1970-01-01
        • 1970-01-01
        • 2018-02-28
        • 1970-01-01
        • 2016-07-10
        • 2020-11-21
        • 1970-01-01
        相关资源
        最近更新 更多