我正在开发一个项目,需要在提交之前更改 FormData。我无法更改元素值,我必须更改进入 POST 的实际 FormData。
我尝试更改 form.onsubmit 来更新值(适用于某些字段,但其他字段由于验证检查而不起作用)
<form name="aspnetForm" method="post" action="Posturl.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm" autocomplete="off">
<input type="text" name="field1" id="field1" value="">
<input type="text" name="field2" id="field2" value="">
</form>
Run Code Online (Sandbox Code Playgroud)
我知道我可以创建一个新的 FormData 对象,并且可以使用 formData.set('field1', 'newValue') 设置该对象的值,但我不确定如何 POST 这个新的 FormData 对象而不是旧对象。
我正在使用Blueimp 文件上传,如何限制上传到最后选择的单个元素或(拖放)?我已经multiple从输入表单中删除了该属性,并将该maxNumberOfFiles选项设置为该值1但是如果第一次上载失败(由于选项maxFileSize或acceptFileTypes),则第一个元素保留在列出的所选文件(由模板生成)之上,而其他文件不能上传是因为他们侵犯了maxNumberOfFiles选项.我希望如果上传和/或删除接受的文件,而不是附加,它将替换旧的(未接受的)文件.我还想,当删除多个文件但只删除第一个文件时,模板永远不会打印多个文件.
我有一个文件输入:
<img id="uploadPreview">
<div id="changeImage">Change</div>
<div id="customImage">
<input type="file" id="myfile" multiple style="display:none" onchange="PreviewImage();" />
<div class='upload blank' id="add-image"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
功能如下:
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("myfile").files[0]);
oFReader.onload = function (oFREvent) {
document.getElementById("uploadPreview").src = oFREvent.target.result;
};
function PreviewImage() {
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("myfile").files[0]);
$("#uploadPreview").removeClass('hide'); //for manipulating something in the dom
$('#changeImage').removeClass('hide'); //for manipulating something in the dom
$("#customImage").addClass('hide'); //these are for manipulating something in the dom
oFReader.onload = function (oFREvent) {
document.getElementById("uploadPreview").src = oFREvent.target.result;
};
};
Run Code Online (Sandbox Code Playgroud)
一切都很完美.现在我有一个更改按钮.我希望如果有人点击它,那么之前上传的文件细节就会消失.功能如下所示:
$('#changeImage').click(function(){
$('#uploadPreview').addClass('hide'); …Run Code Online (Sandbox Code Playgroud) 现在我知道这个基本问题之前已被问过,但我一定做错了.我知道在我可以对它做任何事情之前必须绑定一个附加元素.但是,尝试我可能无法让它工作.
当我们点击收音机选择时,我正在显示一条消息并显示.当我尝试绑定新元素时,它会以奇怪的方式堆叠.它将开始堆叠元素.例如 - [单击1]消息1,[单击2]消息1和2,依此类推.
我尝试了一大堆不同的方法来绑定它.我希望删除会删除#feedback,然后创建并绑定下一条消息.我必须做一些非常错误的事情.我知道这与其他帖子非常相似,但我经历了所有这些帖子并且无法找到足够明确的答案来帮助.先感谢您.
HTML
<div class="answers">
<ul>
<li>
<input id="answer" type="radio" onclick="feedback('THE MESSAGE HTML')"><label>Label</label>
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
function feedback(message)
{
$('#answer').live('click', function()
{
$('#feedback').remove();
});
$('#answer').live('click', function()
{
$('.answers').append('<div id="feedback">'+message+'</div>');
});
};
Run Code Online (Sandbox Code Playgroud) 是否有可能在NHibernate中做这样的事情?
Product GetSpecificProduct()
{
return session.CreateSQLQuery("SELECT * FROM Products WHERE price =
$500").UniqueResult<Product>();
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行此代码时,我得到:
System.InvalidCastException:无法将类型为"System.Object []"的对象强制转换为类型Product.
或者我必须使用NHibernate查询语言?
我正在尝试这个:
var child = spawn('node', args, {cwd: parentDir, stdio: 'ipc'} );
Run Code Online (Sandbox Code Playgroud)
(args是一个参数数组)
但它给出以下错误:
TypeError:stdio选项的值不正确:ipc
这实际上有效,所以问题似乎确实是stdio ipc参数:
var child = spawn('node', args, {cwd: parentDir} );
Run Code Online (Sandbox Code Playgroud)
这也有效:
var child = spawn('node', args, {cwd: parentDir, stdio: 'pipe'} );
Run Code Online (Sandbox Code Playgroud)
我读到了这个:http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options 但是我看不出哪里出错了.这是我第一次尝试使用这个NodeJS功能,所以如果问题很明显,我很抱歉.
也许还有其他方法可以解决问题.孩子必须产生而不是分叉,我只是希望能够将孩子的信息发送给父母.
谢谢!!
编辑:我有Node v0.8.18.我搜索了IPC http://nodejs.org/changelog.html的版本历史记录,搜索词"IPC"没有任何内容让我觉得我需要更新版本的NodeJS.
我刚刚在选择元素中删除和重新附加选项时意识到了一种奇怪的行为.如果选择了其中一个选项,则在附加后,将选择下一个项目而不是原始项目.考虑以下html:
var $opts = $("#sel option").remove();
console.log($opts);
$("#sel").append($opts);Run Code Online (Sandbox Code Playgroud)
<select id="sel">
<option>A</option>
<option>B</option>
<option selected="selected">C</option>
<option>D</option>
</select>
(Look in the console.)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>Run Code Online (Sandbox Code Playgroud)
(或作为一个小提琴)
它使得选项具有值"D",而不是具有值的选项"C",如最初定义的那样.注意控制台中打印的选项,selected该remove()方法后属性会发生变化.
为什么会这样?
注意:我知道如何修复它或解决它,这不是问题.问题是为什么会发生?
遇到的问题
在运行时,我总是得到以下内容NHibernate.MappingException:
"Could not compile the mapping document: GI.InventoryManager.CYB.Mappings.Part.hbm.xml"
Run Code Online (Sandbox Code Playgroud)
是的,它的构建操作设置为Embedded Resource.InnerException说:
"Could not find the dialect in the configuration"
Run Code Online (Sandbox Code Playgroud)
需要的信息
这是我的配置文件名为hibernate.cfg.xml:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">
Server=(local);initial catalog=GI_IM_CYB;Integrated Security=SSPI
</property>
<property name="adonet.batch_size">10</property>
<property name="show_sql">false</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="use_outer_join">true</property>
<property name="command_timeout">60</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
实际上是Configuration_Templates文件夹中的复制粘贴,其中我只更改了以下信息:
Session Factory: "Removed the NHibernate.Test namespace and let the property …Run Code Online (Sandbox Code Playgroud) 使用document.forms[0].submit()on ie 9 发布带有文件上传框的表单时,我们会收到错误消息:SCRIPT5: Access is denied
如果我再点击几次就可以了.
作为一个解决方法,我已经发现错误,并尝试了几次似乎工作得很好.
对此有什么解释吗?该代码已在所有其他流行的浏览器上工作多年.
如果浏览器设置为IE9兼容模式,代码在IE9中也可以正常工作,但这不是我们可以控制的.
我已经看到引用XMLHTTP是一个问题,我们确实执行了一个XMLHTTP调用,但它发生在单击提交按钮之前.
我一直在试图弄清楚如何Environment.getExternalStorateState()在单元测试我的Android应用程序时模拟调用.
我已经能够模拟SystemServices,Providers和Services,但我无法弄清楚如何模拟这个调用,因为它不是对我的上下文中提供的东西的调用,而是OS环境中的某些东西.
会对一些帮助表示感谢.
javascript ×4
jquery ×4
file-upload ×2
html ×2
html5 ×2
nhibernate ×2
.net ×1
android ×1
append ×1
asp.net ×1
bind ×1
blueimp ×1
dialect ×1
environment ×1
filereader ×1
form-data ×1
forms ×1
ipc ×1
live ×1
mocking ×1
mockito ×1
node.js ×1
parent-child ×1
sql ×1
unit-testing ×1