[英]Jquery val() always grabs first select value no matter which is selected
我正在使用Jquery允许用户通过Ajax在表单中上传图像(在实际提交表单之前上传图像)。 我已经添加了向每个上传的图像添加水印的功能(这是在upload_image.php中完成的),这一部分工作正常。
用户可以通过表单选择来选择希望将水印放置在其图像上的位置。 我正在使用Jquery的.val()来获取id =“ watermark” select的值,并将其添加为要传递给upload_image.php的查询字符串值。
问题是无论我在表单中实际选择什么,它总是通过第一个选择值。 我试着将它放在一个函数中(认为它是在页面加载中获取值),没有运气。 我将选择更改为单选按钮。 它仍然获取页面上第一个单选按钮的值; 不管您选择什么
这是脚本中处理此问题的部分:
<script type="text/javascript" >
$(function(){
// build URL to php upload script with watermark placement
function setWatermark() {
var uploadUrl = 'http://www.mysite.com/upload_image.php?w=';
var watermarkValue = $('#watermark').val();
var watermarkUrl = uploadUrl + watermarkValue;
return watermarkUrl;
}
var btnUpload=$('#upload');
new AjaxUpload(btnUpload, {
action: setWatermark(),
name: 'uploadfile',
});
});
</script>
这是表格(删除了无关字段):
<form id="image_form" action="this_form.php" method="post" enctype="multipart/form-data">
<select id="watermark">
<option value="top_left">Top Left</option>
<option value="top_right">Top Right</option>
<option value="center">Center</option>
<option value="bottom_left">Bottom Left</option>
<option value="bottom_right">Bottom Right</option>
</select>
<div id="upload" ><span><img src="upload_button.jpg" /></span></div>
</form>
要执行此代码:
new AjaxUpload(btnUpload, {
action: setWatermark(),
name: 'uploadfile',
});
浏览器必须首先构造参数以传递给构造函数。 要构造第二个参数,即对象,它必须调用setWatermark
来获取action
属性的值。 这是您的问题所在; setWatermark
所述当被调用AjaxUpload
对象被创建。
我不知道AjaxUpload
是什么,但是您必须找到一种方法来使它在需要action
时调用一个函数,而不是在选项中将其作为常量提供。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.