1

我目前正在使用 AJAX/JS 来自动提交表单。该功能适用​​于文本输入字段,但不适用于选择框。有没有办法让 JS 函数回显所选项目的值?例子

AJAX/JS 提交功能

<script>
     $(document).ready(function() {
         var timer = null; 
         var dataString;   
         function submitForm(){
           $.ajax({ type: "POST",
                    url: "test1.php",
                    data: dataString,
                    success: function(result){

                    $('#condition_input').text( $('#resultval', result).html()); 

                    }

           });
           return false;
         }

         $('#condition').on('keyup', function() {
            clearTimeout(timer);
            timer = setTimeout(submitForm, 1000);
                  var condition = $("#condition").val();
            dataString = 'condition='+ condition;
            });
     });
    </script>

html/PHP

if (isset($_POST['condition'])){
    $condition = $_POST['condition'];   
    echo ('<div id="condition"><span id="resultval"><h2>Description:</h2>'.$condition.'</span></div>');
}

    <select name="condition" id="condition" value="<? $condition ?>" >
        <option value=""></option>
            <option value="new">New</option>
        <option value="used">Used</option>
        <option value="not Working">Not Working or for parts</option>
    </select>
4

1 回答 1

1

您必须绑定“on change”事件

$('#condition').on('keyup change', function() {
  // ...
}

而且您的标记不正确。您不能在选择元素上设置值属性。要选择正确的值,您必须遍历选项并通过设置属性“selected”来标记正确的值:

<?php

// ...

$options = array(
  '' => '', 
  'new' => 'New',
  'used' => 'Used',
  'not_working' => 'Not Working or for parts',
);
?>

<select name="condition" id="condition" >
<?php foreach ($options as $optionValue => $optionText): ?>
    <option value="<?php echo $optionValue ?>" <?php echo $condition == $optionValue ? 'selected="selected"' : null ?>><?php echo $optionText ?></option>
<?php endforeach ?>
</select>
于 2012-07-29T21:45:12.020 回答