yii小部件Html::a渲染的a標籤,點擊發送ajax請求,接口沒響應,但是直接在postman或瀏覽器上調url沒問題,是什麼原因

遇到一個小bug,但是也是第一次遇到,所以就記錄下來啦.
在使用小部件DetailView佈局html界面的時候,出現a鏈接點擊發送ajax請求,接口沒響應,也沒有狀態碼,但是直接在postman或瀏覽器上調url沒問題,錯誤如下圖:
按鈕:

$detailColumns[] = [
    'columns' => [
        [
            'label' => '<i class="red">*</i> 訂單編號:',
            'labelColOptions' => ['class' => 'col-xs-2 control-label'],
            'valueColOptions' => ['class' => 'col-xs-2'],
            'attribute' => 'orderCode',
            'type' => DetailView::INPUT_TEXT,
            'options' => [
                'placeholder' => '輸入訂單編號搜索',
            ],
        ],
        [
            'label' => '',
            'labelColOptions' => ['class' => 'col-xs-2 control-label hidden'],
            'valueColOptions' => ['class' => 'col-xs-3 btn-find'],
            'attribute' => '',
            'format' => 'raw',
            'displayOnly' => true,
            'value' => Html::a('搜索',[
                'class' => '',
                'data-code' => ''
            ])
        ],
    ],
];

在這裏插入圖片描述
ajax代碼:

$('.btn-find').on('click', function(){
     top.hideLoading();
    var orderCode = $('#recallexpressform-ordercode').val();
    if(orderCode == ''){
        toast('請輸入訂單號');
        return;
    }
    $.get('/recall-express/order-info', {'orderCode':orderCode}, function(res){
        console.log(res.data);
        }, 'json');
});

請求結果如下:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
認真看第一張錯誤結果截圖的朋友會發現,這個請求被取消了:
在這裏插入圖片描述
取消的原因是因爲Html::a渲染出來的標籤,會默認給個當前的url地址,導致我發送ajax請求的時候,先執行了a標籤的url,所以ajax請求就被取消了
在這裏插入圖片描述
解決方法:
給a標籤添加參數: javascript:;
在這裏插入圖片描述
執行成功接口結果:
在這裏插入圖片描述
加粗樣式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章