[英]HTML select POSTing text instead of value for <option> selected
由於某種原因,我通過POST提交的表單正在發送選項文本,而不是表單的選項值。 這是我的選擇聲明:
<select name = "newfreq">
<option val='1'>every week</option>
<option val='2'>every 2 weeks</option>
</select>
當我在PHP中打印$ _POST數組時。 我有:
[newfreq] => every 2 weeks
我對jquery特別陌生,我正在使用它以模態形式呈現表單,因此我在下面粘貼了完整的form / div和javascript以防萬一:
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.3/jquery-ui.js"></script>
<script>
$(function() {
var dialog, form,
dialog = $( "#dialog-form" ).dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
});
form = dialog.find( "form" ).on( "submit", function( event ) {
// event.preventDefault();
});
$( "#create-user" ).button().on( "click", function() {
dialog.dialog( "open" );
});
});
</script>
<input id = "create-user" type="submit" tabindex="-1" value = "Change deal" >
<div id="dialog-form" >
<form method = "post" action = "details.php">
<fieldset>
<label for="name">Number of hours</label>
<input type="text" name="newhours" id="name" value = <?php echo $totalhours; ?> class="text ui-widget-content ui-corner-all">
<label for="email">Frequency</label>
<select name = "newfreq">
<option val='1'><?php echo return_frequency($typedeal ,1)?></option>
<option val='2'><?php echo return_frequency($typedeal ,2); ?></option>
</select>
<input type = "hidden" name = "included" value = '<?php echo $included;?>'/>
<input type = "hidden" name = "id" value = '<?php echo $id_bus;?>'/>
<br>
<input type="submit" tabindex="-1" >
</fieldset>
</form>
</div>
return_frequency()是一個php函數,根據輸入內容返回“每2周”或“每周”。
我在這里想念什么?
<option val='1'>
應該是<option value='1'>
我知道它的Jquery可能會讓您感到困惑,因為它們經常使用.val
但是實際的HTML使用value
,普通的Javascript也使用.value
。
我想既然你沒有正確的指定值您的瀏覽器必須把文本value
在某種程度上為您服務。 但是,不要依賴於此,因為我認為這可能是一個錯誤,並非所有瀏覽器都可以做到。
改成:
<select name = "newfreq">
<option value='1'>every week</option>
<option value='2'>every 2 weeks</option>
</select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.