我在SharePoint2013环境之上部署了Project Server 2013,并且我在Page_Load期间部署了一个在页面上注册JavaScript的webpart。在这个JavaScript中,我更改了项目详细信息页面的一个输入框的值。但是,在页面完全呈现后,新值不会出现在输入框中,并且仍然启用输入框。 奇怪的是,我已经在更改值的位置添加了JavaScript警报,并且我可以看到警报窗口,因此脚本会运行。另一个奇怪的事情是,如果我使用IE Developer Tools来调试它并在脚本中设置一个断点,并逐行跟随它,那么当呈现页面时,值会被更改并且该框被禁用。 如何更改输入框的值?如果我在开发人员工具上调试它为什么会起作用,但如果我让脚本正常运行则不起作用? 这是我的C#代码:
public partial class SpecialIDUserControl : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
String fieldGUID = "THIS_A_FIELD_GUID"
String specialId = "bla bla bla"
String javaScript = @"SetSpecialID('" + fieldGUID + "','" + specialId + "');";
ScriptManager.RegisterStartupScript(this, GetType(), "initializeVar", javaScript, true);
}
catch (Exception ex)
{
// stuff
}
}
}
这是我的JavaScript
function SetSpecialID(fieldId, specialId) {
var $puidElement = $("[GUID='" + fieldId + "']");
$puidElement.val(specialId);
WPDPParts[0].IsDirty = true; //makes the page dirty, so the user gets a notification for saving
}
$puidElement.attr('disabled', 'disabled'); //disables input box, since this field should not be manually changed
}
答案 0 :(得分:0)
试试这个:
id_field = "field_name";
$('input[title="'+id_field '"]').attr("value",specialId);
$('input[title="'+id_field +'"]').attr("LTValue",fieldGUID);