Проблема в том, что вы закрываете свою функцию точкой с запятой.
Вместо этого поставьте открывающую скобку
function myFunction(){
var text_input=document.getElementById("input001").value;
if (text_input=="4"){
document.getElementById("message001").innerText="Correct!";
}
else{
document.getElementById("message001").innerText="nope";
}
}
Использовать шаблонизатор. StringTemplate является одним из них, и их много.
В блоге Фила Хаака об этом есть хорошая история с реализацией в блоге Фила Хаака: http: // haacked .com / Архив / 2009/01/14 / именованные-форматы-redux.aspx
Вы можете использовать метод "string.Format" :
var user = GetUser();
var finishTime = GetFinishTime();
var fileUrl = GetFileUrl();
var signature = GetSignature();
string msg =
@"Dear {0},
Your job finished at {1} and your file is available for download at {2}.
Regards,
--
{3}";
msg = string.Format(msg, user, finishTime, fileUrl, signature);
Позволяет менять контент в будущем и удобен для локализации.
Вы можете использовать string.Replace (...), в конце концов, в for-each через все ключевые слова. Если есть только несколько ключевых слов, вы можете поместить их в строку, подобную этой:
string myString = template.Replace("FirstName", "John").Replace("LastName", "Smith").Replace("FinishTime", DateTime.Now.ToShortDateString());
Или вы можете использовать Regex.Replace (...), если вам нужно что-то более мощное и с большим количеством опций.
Читать эта статья о codeproject , чтобы увидеть, какой вариант замены строки является самым быстрым для вас.
На самом деле, вы можете использовать XSLT. Вы создаете простой шаблон XML:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:template match="TETT">
<p>
Dear <xsl:variable name="USERNAME" select="XML_PATH" />,
Your job finished at <xsl:variable name="FINISH_TIME" select="XML_PATH" /> and your file is available for download at <xsl:variable name="FILE_URL" select="XML_PATH" />.
Regards,
--
<xsl:variable name="SIGNATURE" select="XML_PATH" />
</p>
</xsl:template>
Затем создаете XmlDocument для выполнения преобразования: XmlDocument xmlDoc = new XmlDocument ();
XmlNode xmlNode = xmlDoc .CreateNode(XmlNodeType.Element, "EMAIL", null);
XmlElement xmlElement= xmlDoc.CreateElement("USERNAME");
xmlElement.InnerXml = username;
xmlNode .AppendChild(xmlElement); ///repeat the same thing for all the required fields
xmlDoc.AppendChild(xmlNode);
После этого примените преобразование:
XPathNavigator xPathNavigator = xmlDocument.DocumentElement.CreateNavigator();
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
XmlTextWriter xmlWriter = new XmlTextWriter(sw);
your_xslt_transformation.Transform(xPathNavigator, null, xmlWriter);
return sb.ToString();
Реализация собственного пользовательского форматера может быть хорошей идеей.
Вот как вы это делаете. Сначала создайте тип, который определяет материал, который вы хотите добавить в ваше сообщение. Примечание: я собираюсь проиллюстрировать это только пользовательской частью вашего шаблона ...
class JobDetails
{
public string User
{
get;
set;
}
}
Далее, реализуем простой пользовательский форматировщик ...
class ExampleFormatter : IFormatProvider, ICustomFormatter
{
public object GetFormat(Type formatType)
{
return this;
}
public string Format(string format, object arg, IFormatProvider formatProvider)
{
// make this more robust
JobDetails job = (JobDetails)arg;
switch (format)
{
case "User":
{
return job.User;
}
default:
{
// this should be replaced with logic to cover the other formats you need
return String.Empty;
}
}
}
}
Наконец, используйте его вот так ...
string template = "Dear {0:User}. Your job finished...";
JobDetails job = new JobDetails()
{
User = "Martin Peck"
};
string message = string.Format(new ExampleFormatter(), template, job);
.. ., который сгенерирует текст "Дорогой Мартин Пек. Ваша работа закончена ...".
Если вам нужно что-то очень мощное (, но на самом деле не самый простой способ ), вы можете разместить ASP .NET и используйте его в качестве движка шаблонов.
У вас будут все возможности ASP.NET для форматирования тела вашего сообщения.
Если вы кодируете в VB.NET, вы может использовать литералы XML. Если вы пишете код на C #, вы можете использовать ShartDevelop для создания файлов в VB.NET в том же проекте, что и код C #.