<option selected =“selected”> text </option>始终返回值,尽管没有值

时间:2012-05-26 21:30:48

标签: php jquery html option

我的问题是选项价值是什么  <option selected="selected" disabled="disabled">Select a city...</option>
问题是:尽管此选项没有任何价值,但PHP代码将其值视为 *'选择城市'* 。所以,即使没有选择城市,我的代码if(isset($_POST['city'])也会一直返回。我该如何解决这个问题?

这是 html 代码:

<form id="city_form">

  <select id="city" name="city">
    <option selected="selected" disabled="disabled">Select a city...</option>
    <option value=1 name="city1">City 1</option>
    <option value=2 name="city2">City 2</option>
    <option value=3 name="city3">City 3</option>
    <option value=4 name="city4">City 4</option>
  </select>

  <input type="submit" value="Submit form" id="submit_button" />

</form>
<div id="show_city"></div>

以下是 jquery 代码:

$('#submit_button').click(function(e) {
  e.preventDefault();
  var data = $('#city_form').serialize();
  $.post(
         "fetch_city.php",
          data,
          function (response) {
             $('#show_city').html(response);
          }
        );
});

这是 fetch_city.php

if (isset($_POST['city']) && !empty($_POST['city'])) {

  $city_id = $_POST['city']);
  echo $city_id;

} else {
  echo "You did not select a city...!";
}

2 个答案:

答案 0 :(得分:4)

你做不到。给它一个有意义的标记value,如果该值出现,则忽略控件。

<option selected="selected" disabled="disabled" value="">Select a city...</option>

答案 1 :(得分:0)

我认为这里的答案是jquery忽略第一个选项上的禁用。尝试从中删除selected =“selected”和disabled =“disabled”。您现在将看到一个空白的第一个条目。提交表单时,您的isset应返回false。