javascript - 在选择选项中变得未定义
问题描述
我正在制作一个简单的表单,用于使用 AJAX 将产品添加到数据库中。问题是显示未定义的选择选项。
我是这个领域的新手。任何人都可以检查代码的质量和我犯的任何其他错误。请在评论中提及。这只是为了学习目的。
$(document).ready(function() {
$("#uploadsdfkf").on('click', function(e) {
e.preventDefault();
var form = $('#upload')[0];
var formdata = new FormData(form);
$productname = $('#Product').val();
$fileupload = $('#file').val();
$price = $('#price').val();
$category = $('#category option:selected').attr('data-id'); // undefined here.
alert($productname + " " + $fileupload + " " + $price + " --->category" + $category);
if ($varpp == "" || $varf == "" || $varpr == "") {
alert("Please Fill all the details");
} else {
$.ajax({
url: "./Flower Delivery Online_files/logicphotoadd.php",
type: "post",
data: formdata,
contentType: false,
processData: false,
success: function(result) {
alert(result);
}
});
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="upload" method="post" enctype="multipart/form-data">
<div class="form-group">
<label class="control-label" for="input-email">Product Name</label>
<input type="text" name="ProductNamees" value="" placeholder="Enter Product Name" id="Product" class="form-control">
</div>
<div class="form-group">
<label class="control-label" for="input-email">Category</label>
<select name="categoryname" value="" id="category" class="form-control">
<option data-id="0" value="0">Category</option>
<option data-id="1" value="1">Flower Bouquet (Buke)</option>
<option data-id="2" value="2">Flower Garland (Har)</option>
<option data-id="3" value="3">Stage Decoration</option>
<option data-id="4" value="4">Bed Decoration</option>
<option data-id="5" value="5">Car Decoration</option>
<option data-id="6" value="6">Home Decoration</option>
<option data-id="7" value="7">Palna Decoration</option>
</select>
</div>
<div class="form-group">
<label class="control-label" for="input-email">file upload</label>
<input type="file" name="files" value="" placeholder="" id="file" class="form-control">
</div>
<div class="form-group">
<label class="control-label" for="input-email">price</label>
<input type="text" name="price" value="" placeholder="Enter price" id="price" class="form-control">
</div>
<input type="submit" id="uploadsdfkf" name="upload" value="upload" class="btn check btn-primary">
</form>
解决方案
你可以试试看
$(document).ready(function() {
$("#uploadsdfkf").on('click', function(e) {
e.preventDefault();
var form = $('#upload')[0];
var formdata = new FormData(form);
$productname = $('#Product').val();
$fileupload = $('#file').val();
$price = $('#price').val();
$category = $('.category').val();
var test_string = $productname + " " + $fileupload + " " + $price + " --->category:" + $category;
alert(test_string);
if ($productname == "" || $fileupload == "" || $price == "") {
alert("Please Fill all the details");
} else {
$.ajax({
url: "./Flower Delivery Online_files/logicphotoadd.php",
type: "post",
data: formdata,
contentType: false,
processData: false,
success: function(result) {
alert(test_string);
}
});
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="upload" method="post" enctype="multipart/form-data">
<div class="form-group">
<label class="control-label" for="input-email">Product Name</label>
<input type="text" name="ProductNamees" value="" placeholder="Enter Product Name" id="Product" class="form-control">
</div>
<div class="form-group">
<label class="control-label" for="input-email">Category</label>
<select name="categoryname" class="form-control category">
<option data-id="0" value="0">Category</option>
<option data-id="1" value="1">Flower Bouquet (Buke)</option>
<option data-id="2" value="2">Flower Garland (Har)</option>
<option data-id="3" value="3">Stage Decoration</option>
<option data-id="4" value="4">Bed Decoration</option>
<option data-id="5" value="5">Car Decoration</option>
<option data-id="6" value="6">Home Decoration</option>
<option data-id="7" value="7">Palna Decoration</option>
</select>
</div>
<div class="form-group">
<label class="control-label" for="input-email">file upload</label>
<input type="file" name="files" value="" placeholder="" id="file" class="form-control">
</div>
<div class="form-group">
<label class="control-label" for="input-email">price</label>
<input type="text" name="price" value="" placeholder="Enter price" id="price" class="form-control">
</div>
<input type="submit" id="uploadsdfkf" name="upload" value="upload" class="btn check btn-primary">
</form>
推荐阅读
- swift - swift - 删除或替换
嵌套字典中的值 - android - 华为/荣耀设备 & SQLiteBlobTooBigException
- node.js - 循环检查邮箱、阅读电子邮件和创建 PDF
- docker - 使用 healthcheck 测试最小的 docker 容器
- android - ionic 4 android,android错误:找不到符号
- excel - 删除 Excel VBA 用户窗体中列表框上的滚动条
- excel - 两个接缝相同但结果不同的循环
- python-3.x - 指定分割字符串 Python 的规则
- javascript - Dragula 没有更新动态列表
- php - 如何在 laravel 数据库的同一个表中添加 2 个自动增量列