【问题标题】:Ajax - dropdown selection works great just the first timeAjax - 下拉选择第一次就很好用
【发布时间】:2020-09-14 02:49:47
【问题描述】:

好吧,我坚持使用将 json 数据发送到 php 文件的这段代码,第一次效果很好(将信息发布到 db 上,一切都很好),但在第一次提交后确实采用了选定的下拉值和用 var = name 中的旧值更新数据库。

代码如下:

<script>
$("#rechazar").click(function(){    
        // Here I create a form called "rechazo" (reject in English) with just two buttons and a dropdown
        var rejectForms= $('<form id="formrechazo" name="formrechazo"><select id="dropdown_rechazo" name="dropdown_rechazo"  style="z-index:10000; width: 250px;" ><option value="" selected="selected">Seleccione un motivo de rechazo</option><option value="Vehicle Year">Año del vehículo</option><option value="Vehicle Model">Tipo de vehículo</option><option value="Vehicle Model">Taxi</option><option value="Age">La edad del Driver es menor a los 21 años</option><option value="Unsuitable Documents">Licencia no admitida</option><option value="Unsuitable Documents">Cedula no admitida</option><option value="Duplicate Record">Registro Duplicado</option></form>');
            rejectForms.dialog({    
            modal: true,   

//在这里创建上面的表单后,我说无论何时单击确定按钮,它都应该采用选定的选项,(这在第一次时效果很好)但是如果我第二次点击取消或更新信息不会只取前一个新选择的值,最后的 .change 事件不再显示警报。我做错了什么?

            buttons: { 
                'OK': function () {     
                 var name =  $( "#dropdown_rechazo" ).find( "option:selected" ).prop("value");   
                 //this ID take it from a form on html with id= #myform var rejectID =  $('#ID').val();
                    debugger; var rejectdata = JSON.parse(JSON.stringify({value: rejectID, value2:name})); //The ajax call - works like a charm- 
                var ajax = $.ajax({
                type: "post",
                dataType: 'json',   
                 url: "http://localhost/reject.php",
                 //context: this,
                 data : ({jsonObj:rejectdata}),
                //contentType: 'application/json;charset=UTF-8',
                 success: function (result) {
//This is a function after I update the php to load info to some divs 
                siguientes();
                                            },
     error: function(result){
                            var json = (result);
                            alert(json.error);
                            }            
     })  
                    $(this).dialog('close');
                    rejectForms.reset;
                },
                    'Cancel': function () {
                    $(this).dialog('close');
                    rejectForms.reset;
                }
              }
            } 
        )           
        $("#dropdown_rechazo").change(function(){
    var name =  $( "#dropdown_rechazo" ).find( "option:selected" ).prop("value");   //$('#dropdown_rechazo').val();
    alert(name)                             
    })  })
</script>   

【问题讨论】:

  • 我用不同的 ID 命名了下拉 ID 并且不起作用。
  • 我知道var name = $( "#dropdown_rechazo" ).prop('value') 可以是` $( "#dropdown_rechazo).val" ` 只是我试图找到一种解决方法

标签: ajax dropdown


【解决方案1】:

解决方案是从 ajax 调用中移出一个“div”,如下所示:

<div id="dialogoRechazo" title="Dialog Title"><select id="dropdown_rechazo" name="dropdown_rechazo"  style="z-index:10000; width: 250px;" ><option value="" selected="selected">Seleccione un motivo de rechazo</option><option value="Vehicle Year">Año del vehículo</option><option value="Vehicle Model1">Tipo de vehículo</option><option value="Vehicle Model">Taxi</option><option value="Age">La edad del Driver es menor a los 21 años</option><option value="Unsuitable Documents">Licencia no admitida</option><option value="Unsuitable Documents1">Cedula no admitida</option><option value="Duplicate Record">Registro Duplicado</option></div>

然后打开表单将使调用执行,我正在调查对话框文档,首先我需要实例化表单,这只是一个运行,因为该函数是第一次加载第一次加载的值

https://api.jqueryui.com/dialog/#option-appendTo

<script>
$("#rechazar").click(function(){    
$( "#dialogoRechazo" ).dialog({ autoOpen: false });
    // Dialog here
    $( "#dialogoRechazo" ).dialog( "open" );
    var rejectForms= $( "#dialogoRechazo" );
        rejectForms.dialog({    
        modal: true,

        buttons: {
            'OK': function () {     
                debugger;   let name =  $( "#dropdown_rechazo" ).find( "option:selected" ).prop("value");   //$('#dropdown_rechazo').val();
                    var rejectID =  $('#ID').val();
                debugger; var rejectdata = JSON.parse(JSON.stringify({value: rejectID, value2: name}));
            var ajax = $.ajax({

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2015-12-01
    • 2020-04-28
    相关资源
    最近更新 更多