JavaScript替换功能不起作用

时间:2018-07-04 11:30:21

标签: javascript jquery ajax codeigniter

我在下面发布了CodeIgniter代码,在此代码中,我正在发送ajax调用以获取用户输入的音译。一切都很好,但是在这一行:

$("#"+modal_field_prefix+"<?php echo $lang; ?>").val($("#"+modal_field_prefix+"<?php echo $lang; ?>").val().replace(/(^[،\s]+)|([،\s]+$)/g, '')  );

我正在尝试修剪输入字段的值,但没有修剪该值,它保持原样。请说明可能是什么问题?

代码:

<?php foreach($this->config->item('allowed_lang') as $code => $lang) { ?>
    $("#"+modal_field_prefix+"<?php echo $lang; ?>").val('');
    for(i=0; i<all_values.length; i++) {
        $.ajax({
            type: "GET",
            async: true,
            dataType: 'json',
            url: "https://www.google.com/inputtools/request?text="+all_values[i]+"&ime=transliteration_en_"+"<?php echo $code; ?>"+"&num=5&cp=0&cs=0&ie=utf-8&oe=utf-8&app=jsapi&uv",
            success: function (data) {
                $("#"+modal_field_prefix+"<?php echo $lang; ?>").val( data[1][0][1][0] +"، "+ $("#"+modal_field_prefix+"<?php echo $lang; ?>").val() );
            }
        });
        $("#"+modal_field_prefix+"<?php echo $lang; ?>").val( $("#"+modal_field_prefix+"<?php echo $lang; ?>").val().replace(/(^[،\s]+)|([،\s]+$)/g, '')  );        
    }
<?php } ?>

4 个答案:

答案 0 :(得分:0)

在像这样的替换功能之前使用import docx doc = docx.Document('TableOfContents.docx') x = 0 for i in doc.paragraphs: if x < 20: print(i.text) else: break; x = x + 1

toString

答案 1 :(得分:0)

replace方法不会替换表达式的值“ in-place”。使用分配获取替换值。 例如:

var string1;

string1 = $("#"+modal_field_prefix+"<?php echo $lang; ?>")
           .val().replace(/(^[،\s]+)|([،\s]+$)/g, '');
$("#"+modal_field_prefix+"<?php echo $lang; ?>").val(string1);

答案 2 :(得分:0)

因为Ajax在JavaScript中是异步的

成功响应后,您的成功功能将开始。但是请求需要时间来获得响应。因此该程序将跳过Ajax回调函数,直接运行下一行代码。

您可以像这样轻松修复它:

for(i=0; i<all_values.length; i++) {
        $.ajax({
            type: "GET",
            async: true,
            dataType: 'json',
            url: "https://www.google.com/inputtools/request?text="+all_values[i]+"&ime=transliteration_en_"+"<?php echo $code; ?>"+"&num=5&cp=0&cs=0&ie=utf-8&oe=utf-8&app=jsapi&uv",
            success: function (data) {
                $("#"+modal_field_prefix+"<?php echo $lang; ?>").val( data[1][0][1][0] +"، "+ $("#"+modal_field_prefix+"<?php echo $lang; ?>").val() );

                $("#"+modal_field_prefix+"<?php echo $lang; ?>").val( $("#"+modal_field_prefix+"<?php echo $lang; ?>").val().replace(/(^[،\s]+)|([،\s]+$)/g, '')  );        
            }
        });

此外,您还可以阅读此链接以了解有关异步JavaScript的全部信息。

https://www.codementor.io/aminmeyghani/learn-asynchronous-javascript-in-2018-fmbib9obw

答案 3 :(得分:0)

您的代码很奇怪。
$("#" + "modal_field_prefix" + "")

您是否忘记了文字字符串“”环绕modal_field_prefix? 一定是
{{1}}