jQuery UI对话框-未捕获异常
我在一个页面中有以下jQuery方法jQuery UI对话框-未捕获异常,jquery,jquery-ui,uncaught-exception,Jquery,Jquery Ui,Uncaught Exception,我在一个页面中有以下jQuery方法 <script type="text/javascript"> jQuery.noConflict(); jQuery.validator.setDefaults({ submitHandler: function () { var usin = jQuery('#usin').val(); var user = jQuery('#user').val(); var ph = jQuery(
<script type="text/javascript">
jQuery.noConflict();
jQuery.validator.setDefaults({
submitHandler: function () {
var usin = jQuery('#usin').val();
var user = jQuery('#user').val();
var ph = jQuery('#ph').val();
var conductivity = jQuery('#conductivity').val();
var hardness = jQuery('#hardness').val();
var tds = jQuery('#tds').val();
var turbidity = jQuery('#turbidity').val();
var alkalinity = jQuery('#alkalinity').val();
var chloride = jQuery('#chloride').val();
jQuery.post("scripts/water_qual_add.php", {
"usin": usin,
"user": user,
"ph": ph,
"conductivity": conductivity,
"hardness": hardness,
"tds": tds,
"turbidity": turbidity,
"alkalinity": alkalinity,
"chloride": chloride
}, function (data) {
jQuery('#dialog').dialog('open');
return false;
jQuery('#eff_entry').each(function () {
this.reset();
});
//jQuery('#usin').focus();
});
}
});
jQuery(document).ready(function () {
jQuery("#dialog-message").dialog({
autoOpen: false,
modal: true,
buttons: {
Ok: function () {
jQuery(this).dialog("close");
jQuery('#usin').focus();
}
}
});
jQuery("#datepicker").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd-mm-yy",
altFormat: "yy-mm-dd",
altField: "#stddate"
});
jQuery('#usin').focus();
jQuery("#eff_entry").validate();
jQuery("#usin").change(function () {
var usin = jQuery('[name="usin"]').val();
jQuery.post("get_sample_details.php", {
"usin": usin
}, function (data) {
if (data.msg) {
// message_box.show_message(data.msg,'Please Enter a valid no.');
alert(data.msg);
jQuery('#usin').focus();
} else {
jQuery('#submit_btn').show();
jQuery('#comment').hide();
jQuery('#doc').val(data.date);
jQuery('#desc').val(data.description);
jQuery('#loc').val(data.location);
}
});
});
});
</script>
jQuery.noConflict();
jQuery.validator.setDefaults({
submitHandler:函数(){
var usin=jQuery('#usin').val();
var user=jQuery('#user').val();
var ph=jQuery('#ph').val();
var conductivity=jQuery(“#conductivity”).val();
var hardware=jQuery('#hardware').val();
var tds=jQuery('#tds').val();
var浊度=jQuery(“#浊度”).val();
var碱度=jQuery(“#碱度”).val();
var chloride=jQuery('#chloride').val();
post(“scripts/water\u qual\u add.php”{
“usin”:usin,
“用户”:用户,
“ph”:ph,
“导电性”:导电性,
“硬度”:硬度,
“tds”:tds,
“浊度”:浊度,
“碱度”:碱度,
“氯化物”:氯化物
},函数(数据){
jQuery('#dialog')。dialog('open');
返回false;
jQuery('#eff_entry')。每个(函数(){
这是reset();
});
//jQuery('#usin').focus();
});
}
});
jQuery(文档).ready(函数(){
jQuery(“对话框消息”).dialog({
自动打开:错误,
莫代尔:是的,
按钮:{
Ok:函数(){
jQuery(this.dialog)(“close”);
jQuery('#usin').focus();
}
}
});
jQuery(“日期选择器”).datepicker({
变化月:对,
变化年:是的,
日期格式:“dd-mm-yy”,
格式:“年月日”,
altField:“stddate”
});
jQuery('#usin').focus();
jQuery(“#eff_entry”).validate();
jQuery(“#usin”).change(函数(){
var usin=jQuery('[name=“usin”]').val();
post(“get\u sample\u details.php”{
“usin”:usin
},函数(数据){
if(data.msg){
//消息框。显示消息(data.msg,'请输入有效的编号');
警报(data.msg);
jQuery('#usin').focus();
}否则{
jQuery('#submit_btn').show();
jQuery('#comment').hide();
jQuery('#doc').val(data.date);
jQuery('#desc').val(data.description);
jQuery('#loc').val(data.location);
}
});
});
});
在页面的正文中
<div id="content">
<div id="welcome">Welcome
<?php echo $_SESSION[ 'EMPNAME']; ?>
</div>
<div id="dialog" class="dialog" title="Water Quality Data Entry">
<hr class="noscreen" />
<form id="eff_entry" name="eff_entry" action="">
<fieldset>
<div id="rawdata">
<legend>Water Quality Parameters</legend>
<label for="usin">USIN</label>
<input name="usin" id="usin" type="text" class="usin" required/>
<br />
<br/>
<label for="ph">pH</label>
<input name="ph" id="ph" value='0.0' required />
<label for="conductivity">Conductivity</label>
<input name="conductivity" id="conductivity" value='0.0' required />
<br />
<label for="tds">TDS</label>
<input name="tds" id="tds" value='0.0' required/>
<br/>
<label for="turbidity">Turbidity</label>
<input name="turbidity" id="turbidity" value='0.0' required />
<br/>
<label for="chloride">Chloride</label>
<input name="chloride" id="chloride" value='0.0' required />
<br/>
<label for="alkalinity">Alkalinity</label>
<input name="alkalinity" id="alkalinity" value='0.0' required />
<br />
<label for="hardness">Hardness</label>
<input name="hardness" id="hardness" value='0.0' required/>
<label for="user">Data Entered By</label>
<input id="user" name="user" style="color:#FF0000; background-color:#FFFF33; font-weight:bold" onfocus="this.blur();" onselectstart="event.returnValue=false;" value="<?php echo $_SESSION['EMPNO']; ?>" />
<br/>
<br/>
<div align="center">
<input id="submit_btn" type="submit" name="submit" value="Submit" />
</div>
</div>
<div id="calculated">
<label for="loc">Location</label>
<input readonly="readonly" name="loc" id="loc" />
<br/>
<label for="desc">Type</label>
<br/>
<input readonly="readonly" name="desc" id="desc" />
<br/>
<label for="doc">Date of Collection</label>
<br/>
<input readonly="readonly" name="doc" id="doc" />
<br/>
</div>
</fieldset>
</form>
<div id="type2"></div>
</div>
</div>
<!--end content -->
<!--end navbar -->
<div id="siteInfo">
<?php include( 'footer.php');?>
</div>
<br />
</div>
欢迎
酸碱度
导电性
TDS
浑浊度
氯化物
碱度
硬度
输入的数据
更改:
jQuery('#dialog').dialog('open');
致:
注意:
默认情况下,jQuery UI对话框的autoOpen
设置默认设置为true
。因此,您可以使用第二行同时初始化和打开对话框。对话框初始化后(无论是通过上行中的初始化+打开,还是通过设置各种选项的设置),您都可以使用open
方法在以后的时间打开它
大多数人喜欢初始化对话框
,如下所示-在DOM就绪
中:
jQuery(function() {
//Initialize dialog
jQuery(".selector").dialog({
autoOpen: false,
modal: true,
......
});
//set up dialog opener
$('.somebutton').on('click', function() {
$('.selector').dialog('open');
});
});
在这里,对话框初始化为DOM ready
,只要单击.somebutton
,它就会打开。请注意,按钮单击总是在初始化后发生。如果这是正文中的完整HTML,然后,您没有任何id对话框消息的元素
,可能是您在错误的选择器上初始化了对话框
,因此当您尝试打开该对话框时出错
根据本规范:
jQuery("#dialog-message").dialog({
autoOpen: false,
modal: true,
buttons: {
Ok: function () {
jQuery(this).dialog("close");
jQuery('#usin').focus();
}
}
});
您应该更换选择器:
jQuery("#dialog").dialog({
autoOpen: false,
modal: true,
buttons: {
Ok: function () {
jQuery(this).dialog("close");
jQuery('#usin').focus();
}
}
});
使用以下命令打开对话框时,执行此操作不会引发任何错误:
jQuery('#dialog').dialog('open');
以下是工作演示:
修改:
我在jQuery('#dialog message').dialog('open')中更改了选择器代码>
添加了一个似乎丢失的临时对话框div:
Hello
它工作得很好。尝试使用jQuery('#dialog').dialog().dialog('open')代码>,您必须初始化该元素的对话框。可能的重复项不是重复项。我仔细阅读了那个问题和答案。我也做了同样的事情。在DOM就绪时初始化了对话框。并使用单击提交按钮后打开的方法。我还尝试了您的更正,但没有工作您初始化了#对话框消息
,但未初始化#对话框
;每个对话框都必须显式初始化或通过“组选择器”。您的观察是正确的,我替换了选择器。还是同样的错误你能通过用一些默认值替换所有的php代码来为你的代码创建一个小提琴吗?它与php代码无关。对话框应在收到回复后打开。除对话框外,此对话框中的所有其他代码都正常工作。我试图创作小提琴,但失败了。无论如何,这就是我在fiddle中使用的脚本的fiddle链接。但它仍然不起作用。然后,我在服务器中更改了jQuery和jQuery UI的版本。在那之后它就开始工作了。
jQuery('#dialog').dialog('open');